HDU1029(水)
来源:互联网 发布:中国淘宝第一村 编辑:程序博客网 时间:2024/06/15 13:33
这题目我直接用map暴力膜过的
然后看到kuangbin的做法,总结一下
/*多元素即在数列中出现次数多于n/2的元素我们很容易的看出来,在一个序列中如果去掉2个不同的元素,那么原序列中的多元素,在新的序列中还是多元素,因此我们只要按照序列依次扫描,先把t赋值给result,增加个计数器,cnt = 1;然后向右扫描,如果跟result相同,则cnt++,不同,那么cnt --,这个真是我们从上面那个结论里得出的,一旦cnt == 0了,那么必定c不是多元素,这个时候把t赋值为result,cnt = 1;,重复该过程,知道结束,这个时候,result就是多元素,这个的时间复杂度为n,该题本来可以用数组保存每个元素,然后递归上述过程,可是,用数组超内存,因此我们可以直接按照上述过程计算*///用cin,cout会超时 #include<iostream>#include<string.h>using namespace std;int main(){ int n,i; int t; int cnt; int result; while(scanf("%d",&n)!=EOF) { cnt=0;//cnt保存的是result出现的个数 for(i=0;i<n;i++) { scanf("%d",&t); if(cnt==0)//如果这个数被删完了那么我们就把下一个读进来的数当做result { cnt=1; result=t; } else { if(t==result)cnt++; else cnt--;//这个其实是删去的操作,如果两个数不同,我把两个数都删去 } } printf("%d\n",result); } return 0; }
阅读全文
0 0
- HDU1029(水)
- HDU1029时钟(排序)
- hdu1029
- HDU1029
- hdu1029
- hdu1029
- hdu1029
- hdu1029
- HDU1029
- HDU1029
- HDU1029
- HDU1029 水题
- hdu1029 技巧
- hdu1029(基础)
- 【HDU1029】B
- (博客搬迁啦)寻找多元素算法hdu1029(2010年10月17日)
- HDU1029 Ignatius and the Princess IV 腾讯面试题抢红包(?)(模拟)
- hdu1029 Ignatius and the Princess IV(DP求数列中出现次数过半的数)
- 基于QNX的Testbed单元测试环境配置过程
- 详解 Stacking 的 python 实现
- C++继承与构造函数、复制控制
- 进程间通讯的基础知识
- 平衡二叉树调整
- HDU1029(水)
- QNX开发的cJson和XML拓展功能使用
- bibreoj #6191. 「美团 CodeM 复赛」配对游戏(DP)@
- 牛客《剑指Offer》 用两个栈实现队列
- 山寨币开发专题(虚拟币的挖矿机制是怎样的?)
- 数据存储方式(IO-SharedPreferences)
- LightOJ
- 1149: 组合三位数之二
- ROM 之 任意波形发生器