Codeforces Round #215 (diy.2) B.Sereja and Suffixes
2013-11-27 07:35
495 查看
题目链接:点击打开链接
题目大意:
给一列数an,然后有m个询问(l1,l2,...,lm)
问ali-an之间有多少不同的数。(li为下标)
不得不吐槽自己的代码能力和debug能力!!
开始超时了,用了O(n*n)的for循环,每读入一个数就从此数开始向后遍历直到an。
后来很快改成,先记录询问,然后o(n)的for语句遍历一次,
把所有询问的结果记录下来。
开始忘了考虑询问相同的情况。
改好后,最后总是wa在第三组数据!!!其实就是可能连续x个(x>=2)个询问都是相同的啊。。。
所以要用while而不是if!!!
如果用if,那么只处理了相邻两个相同的询问,当处理第3个时,k已经增加,cnt值也已经更新。
所以第3个值在第2个值上+1,第4个+2.。。。而且后面比这个w小的询问有可能是0.因为在k增加的时候,
已经错过了判断相等的时机啊。。。!!!!!
题目大意:
给一列数an,然后有m个询问(l1,l2,...,lm)
问ali-an之间有多少不同的数。(li为下标)
不得不吐槽自己的代码能力和debug能力!!
开始超时了,用了O(n*n)的for循环,每读入一个数就从此数开始向后遍历直到an。
后来很快改成,先记录询问,然后o(n)的for语句遍历一次,
把所有询问的结果记录下来。
开始忘了考虑询问相同的情况。
改好后,最后总是wa在第三组数据!!!其实就是可能连续x个(x>=2)个询问都是相同的啊。。。
所以要用while而不是if!!!
如果用if,那么只处理了相邻两个相同的询问,当处理第3个时,k已经增加,cnt值也已经更新。
所以第3个值在第2个值上+1,第4个+2.。。。而且后面比这个w小的询问有可能是0.因为在k增加的时候,
已经错过了判断相等的时机啊。。。!!!!!
#include<cstdio> #include<iostream> #include<algorithm> #include<cstdlib> #include<cctype> #include<cmath> #include<queue> #include<cstring> #include<string> #define INF 0x3f3f3f3f using namespace std; int a[100010]; int vis[100010]; struct node { int id; int w; }b[100010]; int ans[100010]; bool cmp(node x,node y) { return x.w>=y.w; } int main() { int n,m,cnt; while(scanf("%d%d",&n,&m)!=EOF) { memset(a,0,sizeof(a)); memset(b,0,sizeof(b)); memset(ans,0,sizeof(ans)); for(int i=1;i<=n;i++) scanf("%d",&a[i]); for(int j=0;j<m;j++) { scanf("%d",&b[j].w); b[j].id=j; } sort(b,b+m,cmp); memset(vis,0,sizeof(vis)); cnt=0; int r=0,f; //for(int i=0;i<m;i++) // cout<<b[i].id<<' '<<b[i].w<<endl; for(int k=n;k>=b[m-1].w;k--) { if(!vis[a[k]]) { vis[a[k]]=1; cnt++; } if(k==b[r].w) { ans[b[r].id]=cnt; f=b[r].w; r++; } while(b[r].w==f) //此处用了if,遗憾+悔恨! { ans[b[r].id]=cnt; r++; } } for(int i=0;i<m;i++) printf("%d\n",ans[i]); } return 0; } /* 7 10 1 3 8 6 2 2 7 4 2 6 3 4 4 6 2 7 4 */
相关文章推荐
- Java 文件下载
- 淘宝网架构
- Android--SurfaceView播放视频
- linux 新建用户、用户组 以及为新用户分配权限
- Facebook数据库工具Flashcache初探
- 股市风云
- 编程中的runtime_error问题
- flashcache的实现与分析
- Python动态类型理解
- 淘宝的数据库系统
- rsync与inotify 数据同步
- php入门教程 第一个php程序
- PHP获取当前url路径的函数以及服务器变量
- PHP获取当前url的具体方法
- JS判断不能为空实例代码
- SQL2005数据库行列转换
- mysql 导入导出数据库、数据表的方法
- java 事件监听器ActionListener
- Django 关系属性
- windows server 2012之搭建Web服务器