百度之星2015初赛(1)1002 HDOJ5247 找连续数(暴力 简单做法)
2015-06-09 21:49
369 查看
找连续数
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 819 Accepted Submission(s): 300
[align=left]Problem Description[/align]
小度熊拿到了一个无序的数组,对于这个数组,小度熊想知道是否能找到一个k 的区间,里面的 k 个数字排完序后是连续的。
现在小度熊增加题目难度,他不想知道是否有这样的 k 的区间,而是想知道有几个这样的 k 的区间。
[align=left]Input[/align]
输入包含一组测试数据。
第一行包含两个整数n,m,n代表数组中有多少个数字,m 代表针对于此数组的询问次数,n不会超过10的4次方,m 不会超过1000。第二行包含n个正整数,第 I 个数字代表无序数组的第 I 位上的数字,数字大小不会超过2的31次方。接下来 m 行,每行一个正整数 k,含义详见题目描述,k 的大小不会超过1000。
[align=left]Output[/align]
第一行输"Case #i:"。(由于只有一组样例,只输出”Case #1:”即可)
然后对于每个询问的 k,输出一行包含一个整数,代表数组中满足条件的 k 的大小的区间的数量。
[align=left]Sample Input[/align]
6 2 3 2 1 4 3 5 3 4
[align=left]Sample Output[/align]
Case #1: 2 2
[align=left]Source[/align]
2015年百度之星程序设计大赛 - 初赛(1)
[align=left]Recommend[/align]
hujie | We have carefully selected several similar problems for you: 5267 5266 5265 5264 5263
对于长度为n的数组,直接遍历长度为k的区间,区间排序的复杂度为O(klogk),但若是先找出k区间的最大最小值,复杂度为(logk),再遍历hash一下判断元素是否出现过,复杂度为(logk),就可以简单暴力过。比较坑的一点是, max_element的复杂度明明是线性的,但是用在这里会超时,遍历找max、min就不会超时……
#include<iostream> #include<algorithm> #include<cstdio> #include<cstring> using namespace std; int a[10005],vis[1005]; int main(){ int n,m; int tot = 1; while(~scanf("%d%d", &n, &m)){ for(int i = 0;i < n;i++){ scanf("%d", &a[i]); } printf("Case #%d:\n", tot++); while(m --){ int k; scanf("%d", &k); if(k == 1){ printf("%d\n", n); continue; } //此句加与不加不影响是否超时 int temp = n-k+1; int cnt = 0; for(int i = 0;i < temp;i++){ // int mmax = *max_element(a+i,a+i+k); // int mmin = *min_element(a+i,a+i+k); int mmax = *(a+i),mmin = *(a+i); int temp2 = i+k; for(int j = i;j < temp2;j++){ if(a[j] < mmin) mmin = a[j]; if(a[j] > mmax) mmax = a[j]; } if(mmax-mmin != k-1) continue; memset(vis,0,k*sizeof(int)); bool flag = true; for(int j = i;j < temp2;j++){ if(vis[a[j]-mmin]){ flag = false; break; } vis[a[j]-mmin]++; } if(flag) cnt++; } printf("%d\n", cnt); } } return 0; }
相关文章推荐
- jQuery实现当拉动滚动条到底部加载数据
- ceph存储 UML学习---用例图
- 32位int整型数的二进制表示中1的个数
- OC将基本数据类型和结构体包装成类NSValue/NSNumber
- ceph存储 UML学习---类图
- Android Fragment应用实战
- (leetcode)Reverse Linked List 脑子已经僵住
- System.OutOfMemoryException: 内存不足。(转)
- 使用CLK.AspNet.Identity提供以角色为基础的访问控制(RBAC)
- http协议及网页header头应用
- http协议及网页header头应用
- OSGI学习之路-苦咲
- hdoj1584 蜘蛛牌 区间型DP
- ###《More Effective C++》- 操作符
- Linux下挂载硬盘(整理总结)
- 冒泡排序 BubbleSort
- 自己
- Xcode6中lua生成静态库
- ceph存储 UML学习---状态图
- 随机数的产生