Tyvj P3680 找妹子
2016-09-24 10:40
134 查看
背景
本题由 @fjzzq2002 提供,已奖励20金币。
描述
sps是zzq的好伙伴。sps一天叫来了许多个妹子。然后sps看了看这些妹子,说了m个数。这m个数中出现次数最多的数就是sps最喜欢的妹子的编号。因为sps非常专一,他最喜欢的妹子的编号出现的次数大于m的一半。
你自然想知道一下sps最喜欢哪个妹子。
m<=1000000。m个数均在int范围内的正数。
注意看时空限制!
输入格式
第一行一个数m。第二行m个数。
输出格式
输出出现次数最多的数。
备注
空间1.2MB,连m个数都存不下。样例输入:
8
2 3 3 2 3 3 2 3
样例输出:
3
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
神奇神奇又神奇的贪心~
因为题目里面说连m个数都存不下,当然不能用数组了,只能即时更新。
用两个变量t和k记录,k为当前出现次数最多的妹子,t记录的是k比其他人中最大的大了多少。
然后每次如果出现的是k,就t++;出现的不是k,就t--;如果t==-1,表示有妹子比现在的妹子还厉害,就更新k值;这里要注意应该再把t值赋值为1~
证明:
如果上一步是k还是最大的,而这一步的时候输入的x使得k不再优越,那么此时的x一定是最优解,因为如果前面有一个kkz出现次数比x多,那么kkz一定会先于x更新k值,就不会等到x来更新k了。
#include<cstdio> int n,t,x,k; int main() { scanf("%d%d",&n,&k);t=1; for(int i=2;i<=n;i++) { scanf("%d",&x); if(x==k) t++; else { t--; if(t==-1) t=1,k=x; } } printf("%d\n",k); return 0; }
相关文章推荐
- tyvj3680 找妹子
- TYVJ3680 找妹子
- bzoj 3809 Gty的二笔妹子序列
- 【NOIP模拟】运输妹子
- tyvj P1051 选课
- BZOJ 3720 Gty的妹子树
- BZOJ 3450 Tyvj1952 Easy
- [TYVJ]1519 博彩
- BZOJ 3809 Gty的二逼妹子序列
- Tyvj 1231 跳格子I (数学,欧拉函数)(高精度)
- tyvj1005 未进行测试
- OSChina 周四乱弹 ——快速辨别妹子有无男友!
- 使用HttpClient和Jsoup爬取某网的妹子图片
- 【Tyvj1982】武器分配(费用流)
- 妹子图
- Python网络爬虫(4)煎蛋网妹子图片抓取
- bzoj3224 Tyvj 1728 普通平衡树
- Tyvj 1038-1039 忠诚1-2 【线段树】
- BZOJ 3720: Gty的妹子树
- 【BZOJ3224】 Tyvj 1728 普通平衡树