zoukankan      html  css  js  c++  java
  • P2310 loidc,看看海

    题目背景

    loidc喜欢大海。在他放假的时候他经常一个人跑到海边独自玩耍。

    在浪花的冲击下,他可以忘记打代码的烦躁,真是惬意极了。

    虽然今天是周六,但今天可是11.8号。在早晨放松之余他可不能忘掉OI知识。

    题目描述

    loidc准备带着LOI的队员们考完试后到海边玩耍。所以他想写一个程序让队员们了解在一段时间内海浪的情况。他的命令是这样的x y k输入的,这是要询问在时间[x,y]内海浪高度第k小的单位时刻是那个时刻。

    但是在他刚准备打开Dev-pas++ 的时候,loidc发现他的电脑坏掉了。于是一向喜欢偷懒的他就向你求助。他希望你能在1S内完成程序的运行。

    当然loidc会提前告诉你所有时段海浪的高度,这点你放心。至于他是如何得到的,这就不得而知了。

    输入输出格式

    输入格式:

     

    第一行一个数n,表示总时间段。

    第二行n个数,一次表示1~n单位时刻海浪的高度。(数据保证各个时刻海浪高度均不相同)

    第三行一个数m,表示有m个询问。

    接下来m行,每行3个数x y k,表示一个询问。(数据保证k<=y-x+1)

     

    输出格式:

     

    一共m行,是每个询问的回答。

     

    输入输出样例

    输入样例#1: 复制
    5
    1 2 3 4 5
    3
    2 4 2
    1 5 1
    3 3 1
    
    输出样例#1: 复制
    3
    1
    3
    

    说明

    30% n<=200 m<=200

    100% n<=4000 m<=4000

    海浪高度取值范围1——100000。

    30分暴力

    #include<cstdio>
    #include<cstring>
    #include<iostream>
    #include<algorithm>
    #define MAXN 4010
    using namespace std;
    int n,m;
    int num[MAXN],tmp[MAXN];
    int main(){
        scanf("%d",&n);
        for(int i=1;i<=n;i++)    scanf("%d",&num[i]);
        scanf("%d",&m);
        for(int i=1;i<=m;i++){
            int x,y,z;
            scanf("%d%d%d",&x,&y,&z);
            for(int j=x;j<=y;j++)    tmp[j-x+1]=num[j];
            sort(tmp+1,tmp+2+y-x);
            printf("%d
    ",tmp[z]);
        }
    }

    AC代码:

    #include<cstdio>
    #include<cstring>
    #include<iostream>
    #include<algorithm>
    #define MAXN 4010
    using namespace std;
    int n,m,num;
    struct nond{
        int tmp,id;
    }v[MAXN];
    int cmp(nond a,nond b){
        return a.tmp>b.tmp;
    }
    int main(){
        scanf("%d",&n);
        for(int i=1;i<=n;i++){
            scanf("%d",&v[i].tmp);
            v[i].id=i;
        }    
        scanf("%d",&m);
        sort(v+1,v+1+n,cmp);
        for(int i=1;i<=m;i++){
            int x,y,z;
            scanf("%d%d%d",&x,&y,&z);
            for(int j=1;j<=n;j++){
                if(v[j].id>=x&&v[j].id<=y)    num++;
                if(num==y-x+2-z){    printf("%d
    ",v[j].id);break;}    
            }
            num=0;
        }
    }
    细雨斜风作晓寒。淡烟疏柳媚晴滩。入淮清洛渐漫漫。 雪沫乳花浮午盏,蓼茸蒿笋试春盘。人间有味是清欢。
  • 相关阅读:
    HDU1029 Ignatius and the Princess IV
    UVA11039 Building designing【排序】
    UVA11039 Building designing【排序】
    POJ3278 HDU2717 Catch That Cow
    POJ3278 HDU2717 Catch That Cow
    POJ1338 Ugly Numbers(解法二)
    POJ1338 Ugly Numbers(解法二)
    UVA532 Dungeon Master
    UVA532 Dungeon Master
    POJ1915 Knight Moves
  • 原文地址:https://www.cnblogs.com/cangT-Tlan/p/8544535.html
Copyright © 2011-2022 走看看