2017 Multi-University Training Contest
来源:互联网 发布:java随机数生成 编辑:程序博客网 时间:2024/06/07 06:21
http://acm.hdu.edu.cn/showproblem.php?pid=6040
题意:
给出随机数列 a[N] (N < 1e7);
询问 b[M] (M < 100) ,对于每个询问输出第 b[i]+1小的数字;
满足对任意 i,j,k,若b[i] <= b[k] && b[j] <= b[k] 则一定有 b[i]+b[j] <= b[k];
思路:
比赛的时候并不知道有nth_element这个函数,直到比赛结束后看了一下别人的题解,才知道原来这个库函数可以过这道题。首先对bi进行由小到大排序, 将第K大的元素放在数组的下标K上, 左面全比他小, 右面全比他大,然后从m到0使用nth_element进行查找,找出bi+1大的数。
#include<bits/stdc++.h>using namespace std;unsigned T,m,n,id[110],b[110];unsigned s[10000010],a[110],x,y,z;unsigned rng61(){ unsigned t; x ^= x << 16; x ^= x >> 5; x ^= x << 1; t = x; x = y; y = z; z = t ^ x ^ y; return z;}bool cmp(unsigned x,unsigned y){ return b[x] < b[y];}int main(){ int cas = 1; while(~scanf("%u %u %u %u %u",&n,&m,&x,&y,&z)){ for(int i = 0;i < m;i++){ id[i] = i; scanf("%u",&b[i]); } for(int i = 0;i < n;i++){ s[i] = rng61(); } sort(id,id + m,cmp); b[id[m] = m] = n; for(int i = m - 1;i >= 0;i--){ nth_element(s,s + b[id[i]],s + b[id[i + 1]]); a[id[i]] = s[b[id[i]]]; } printf("Case #%d: ",cas++); for(int i = 0;i < m - 1;i++){ printf("%u ",a[i]); } printf("%u\n",a[m - 1]); } return 0;}
阅读全文
0 0
- 2017 Multi-University Training Contest
- 2017 Multi-University Training Contest
- 2017 Multi-University Training Contest
- 2017 Multi-University Training Contest
- 2017 Multi-University Training Contest
- 2017 Multi-University Training Contest
- 2017 Multi-University Training Contest
- 2017 Multi-University Training Contest
- 2017 Multi-University Training Contest
- 2017 Multi-University Training Contest
- 2017 Multi-University Training Contest
- 2017 Multi-University Training Contest
- #2017 Multi-University Training Contest
- 2017 Multi-University Training Contest
- #2017 Multi-University Training Contest
- 2017 Multi-University Training Contest
- 2017 Multi-University Training Contest
- 2017 Multi-University Training Contest
- Spring 4.0 学习日记(9) ---XML配置实现AOP切面
- Excel在统计分析中的应用—第二章—描述性统计-Part4-偏度(四分位数和Spearman偏度系数)
- CSS
- 实例2.1 两个有序链表序列的合并
- Libevent源码剖析——事件event
- 2017 Multi-University Training Contest
- Linux命令学习:统计socket各种状态的连接数(sed/awk)
- 数据结构之栈之括号匹配问题
- Go语言学习笔记 --- 指针和自增自减运算及相关注意事项
- 【POJ1611】The Suspects(并查集)
- Uva 10935 Throwing cards away I
- $.toJSON
- 评分卡模型开发-定量指标筛选
- Mybatis第一天 重要内容mapper代理