hdu 5247 找连续数
2016-03-16 21:45
260 查看
Problem Description
小度熊拿到了一个无序的数组,对于这个数组,小度熊想知道是否能找到一个k 的区间,里面的 k 个数字排完序后是连续的。
现在小度熊增加题目难度,他不想知道是否有这样的 k 的区间,而是想知道有几个这样的 k 的区间。
Input
输入包含一组测试数据。
第一行包含两个整数n,m,n代表数组中有多少个数字,m 代表针对于此数组的询问次数,n不会超过10的4次方,m 不会超过1000。第二行包含n个正整数,第 I 个数字代表无序数组的第 I 位上的数字,数字大小不会超过2的31次方。接下来 m 行,每行一个正整数 k,含义详见题目描述,k 的大小不会超过1000。
Output
第一行输”Case #i:”。(由于只有一组样例,只输出”Case #1:”即可)
然后对于每个询问的 k,输出一行包含一个整数,代表数组中满足条件的 k 的大小的区间的数量。
Sample Input
6 2
3 2 1 4 3 5
3
4
Sample Output
Case #1:
2
2
分析:由于n为1e4,不是很大可以直接暴力枚举。对于每个数往后枚举长度k,判断是否为连续的,sum[k]保留结果!
小度熊拿到了一个无序的数组,对于这个数组,小度熊想知道是否能找到一个k 的区间,里面的 k 个数字排完序后是连续的。
现在小度熊增加题目难度,他不想知道是否有这样的 k 的区间,而是想知道有几个这样的 k 的区间。
Input
输入包含一组测试数据。
第一行包含两个整数n,m,n代表数组中有多少个数字,m 代表针对于此数组的询问次数,n不会超过10的4次方,m 不会超过1000。第二行包含n个正整数,第 I 个数字代表无序数组的第 I 位上的数字,数字大小不会超过2的31次方。接下来 m 行,每行一个正整数 k,含义详见题目描述,k 的大小不会超过1000。
Output
第一行输”Case #i:”。(由于只有一组样例,只输出”Case #1:”即可)
然后对于每个询问的 k,输出一行包含一个整数,代表数组中满足条件的 k 的大小的区间的数量。
Sample Input
6 2
3 2 1 4 3 5
3
4
Sample Output
Case #1:
2
2
分析:由于n为1e4,不是很大可以直接暴力枚举。对于每个数往后枚举长度k,判断是否为连续的,sum[k]保留结果!
#include<iostream> #include<cstring> #include<string> #include<algorithm> #include<set> using namespace std; int main() { int n,m,a[10010],k=1; while(~scanf("%d %d",&n,&m)) { int sum[1005]; memset(sum,0,sizeof(sum)); sum[1]=n; for(int i=0;i<n;i++) scanf("%d",&a[i]); for(int i=0;i<n;i++)//对于每个数枚举 { set<int> sr; sr.insert(a[i]); int mini=a[i],maxi=a[i]; for(int j=i+1;j<n;j++) { sr.insert(a[j]); mini=min(a[j],mini); maxi=max(a[j],maxi); if(maxi-mini>1000) break; int c=j-i+1;//入集合数量 if(sr.size()!=c)//数据重复 break; int p=maxi-mini+1; if(p==sr.size())//不重复 sum[c]++; } } int t; printf("Case #%d:\n",k); k++; for(int i=0;i<m;i++) { scanf("%d",&t); printf("%d\n",sum[t]); } } return 0; }
相关文章推荐
- 各种排序算法的稳定性和时间复杂度小结
- 在Unity中引用Dll的两种方法
- 线性表 及Java实现 顺序表、链表、栈、队列
- JSON详细总结
- 在VC++中启用内存泄露检测
- Android逆向分析工具整理
- 微信分享调用 -- c#篇
- 卷积神经网络改进想法初探(上篇)
- 51nod--1212 最小生成树
- 第一届蓝桥杯 部分题
- 课堂作业5
- HDU 3065 (AC自动机)
- 2016.3.16
- 程序员如何优雅的挣零花钱
- 【JAVA集合】HashMap源码分析(转载)
- 关于数组方面的算法分析
- 第11章 LocationTest
- 一张图读懂sparkstreaming源码
- simpleAdapter类
- 多线程 : CyclicBarrier 同步点 应用