Jeronimo's List 2017ACM-ICPCUniversidadNacionaldeColombiaProgrammingContest/Gym-101466J
来源:互联网 发布:win8动态壁纸软件 编辑:程序博客网 时间:2024/06/14 23:22
题意: Jeronimo 先给出 m 个数,然后利用这 m 个数得出剩下的 n-m 个数,具体做法是第 i(i>m) 个数等于第 i-m 个数与第 i-m+1 个数之和对
思路: 暴力(产生出 n 个数然后对这 n 个进行排序,然后读取 q 个问题输出)时间复杂度为
可以边产生 n 个数边用一个
然后记录下问题序列,对问题序列进行排序,复杂度为
最后因为已知从小到大每个数字在 n 个数字中出现了几次,所以我们扫一遍问题序列就能够得到相应问题的答案了。
上面思路的时间复杂度大概为
代码:
#include<cstdio>#include<cstring>#include<cstdlib>#include<stack>#include<queue>#include<utility>#include<vector>#include<cmath>#include<set>#include<map>#include<iostream>#include<algorithm>using namespace std;typedef long long LL;const int MAXN = 3*1e7+10;const int MOD = 3*1e7;int n, m, q;int num[MAXN];int hs[MAXN];int b[10010];int b2[10010];map<int , int> mp;int main(){ while(scanf("%d%d%d", &n, &m, &q) == 3){ memset(hs, 0, sizeof(hs)); mp.clear(); for(int i=0; i<m; i++){ scanf("%d", &num[i]); hs[num[i]]++; } for(int i=m,j=0; i<n; i++,j++){ num[i] = (num[j]+num[j+1])%MOD; hs[num[i]]++; } for(int i=0; i<q; i++){ scanf("%d", &b[i]); b2[i] = b[i]; } sort(b2, b2+q); for(int i=0,sum=0,j=0; i<q; i++){ while(sum < b2[i]){ sum += hs[j++]; } mp[b2[i]] = j-1; } for(int i=0; i<q; i++){ printf("%d\n", mp[b[i]]); } } return 0;}
阅读全文
0 0
- Jeronimo's List 2017ACM-ICPCUniversidadNacionaldeColombiaProgrammingContest/Gym-101466J
- Logo 2017ACM-ICPCUniversidadNacionaldeColombiaProgrammingContest/Gym101466H
- Double it 2017ACM-ICPCUniversidadNacionaldeColombiaProgrammingContest/Gym101466D
- Planet Communcation 2017ACM-ICPCUniversidadNacionaldeColombiaProgrammingContest/Gym101466C
- GYM 101147 J.Whistle's New Car(dfs)
- GYM 100801J Journey to the “The World's Start”
- 2017 icpc Southeast USA J 题 Gym
- Gym 100917 J. Judgement
- Gym-100712J-Candy
- Gym 100712J Candy
- Gym 100637J
- Gym 101147.J
- Gym 101243.J
- Gym 101246.J
- Gym 101343.J
- Gym 101617J dp
- GYM 100801J Journey to the “The World's Start”【二分+Dp+单调队列】
- GYM 2017 ACM Amman Collegiate Programming Contest
- 通过Main方法(Endpoint)发布webService服务器
- 复杂度分析
- Android开源项目以及开源框架,各种UI实现效果
- dedecmsV5.7自定义图片字段调用方法
- java面试题丢手帕问题 代码详解-- 跟着韩老师学JAVA!!!
- Jeronimo's List 2017ACM-ICPCUniversidadNacionaldeColombiaProgrammingContest/Gym-101466J
- 百度离线地图添加右键菜单
- 2017-10_学习感悟
- Python中对mysql数据库的操作
- 第5章引用类型
- hibernate+JPA实现对数据库的增删改查
- CentOS7 64位下MySQL5.7安装与配置(YUM)
- Arcgis创建Oracle地理数据库
- PHP高级编程之消息队列