加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

蓝桥杯algo1区间k大数查询

发布时间:2020-12-14 03:17:47 所属栏目:大数据 来源:网络整理
导读:? ?数据量比较大,如果每次划一个区间就排一次序的话,时间一定会消耗很多,所以想一种办法只排一次序,所以把数存到另一个数组中,这个数组从大到小排一次序,原来的数组保持不变,剩下就只需要从大到小在区间中找对应的了。 #includecstdio#includecstring


? ?数据量比较大,如果每次划一个区间就排一次序的话,时间一定会消耗很多,所以想一种办法只排一次序,所以把数存到另一个数组中,这个数组从大到小排一次序,原来的数组保持不变,剩下就只需要从大到小在区间中找对应的了。

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
bool cmp(int a,int b)
{
    return a>b;
}
int main()
{
    int i,j,k,n,m;
    int a[1000],b[1000];
    while(~scanf("%d",&n))
    {
        for(i=0; i<n; i++)
        {
            scanf("%d",&a[i]);
            b[i]=a[i];
        }
        sort(b,b+n,cmp);
        scanf("%d",&m);
        int L,R,K;
        while(m--)
        {
            scanf("%d%d%d",&L,&R,&K);
            j=0;
            int I;
            while(K>0)
            {
                for(i=L-1;i<R;i++)
                {
                    if(a[i]==b[j])
                    {
                        I=a[i];
                        K--;
                    }
                }
                endd:
                j++;
                if(j>=n)
                break;
                if(b[j]==b[j-1])
                goto endd;
            }
            printf("%dn",I);
        }
    }
    return 0;
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读