51nod 1786 数据流中的算法

来源:互联网 发布:部队网络安全形势分析 编辑:程序博客网 时间:2024/06/06 19:55

数据流统计功能上线后,为51nod提升用户体验做出了很大的贡献。但是新问题随之而来,夹克老爷还想知道在一个窗口内,访问次数最多用户(即窗口内的众数)。如果有多个众数,取用户ID最小的一个。(窗口的意思是一个固定长度的区间!)

(因为数据流是实时的、在线的,所以不允许使用离线算法^_^)
Input
第一行为整数n, k。(1 <= n <= 5 * 10^6,1 <= k <= 1000)n代表有多少次操作,k代表窗口大小。接下来的n行,每行代表一次操作。每行第一个整数为操作数。操作数1:用户访问输入格式: <1, id>用户ID为[0, INT_MAX]闭区间内的整数。代表拥有此ID的用户对网站进行了一次访问,窗口进行相应移动。操作数2:询问众数输入格式:<2>输出窗口内的众数,如果有多个,输出ID最小的那个。p.s. 对于询问众数的操作,窗口保证不空p.s.s. 对于询问众数的操作,窗口可能不满
Output
对于询问众数的操作,每行输出一个整数。
Input示例
10 51 21 11 21 1 1 21 121 31 32
Output示例
11
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

set+map+卡常~

用map记录现在该表号的出现次数,然后用set维护最大值。

居然被卡常了,然后又去学了输出优化,有趣。


#include<cstdio>#include<cstring>#include<iostream>#include<map>#include<set>using namespace std;int n,x,k,pos,a[5000010],tot,sta[12],top;struct node{int x,num;bool operator < (const node&u) const{return num==u.num ? x<u.x:num>u.num;} }; map<int,int> f;multiset<node> s;int read(){int x=0,f=1;char ch=getchar();while(ch<'0' || ch>'9') {if(ch=='-') f=-1;ch=getchar();}while(ch>='0' && ch<='9') {x=x*10+ch-'0';ch=getchar();}return x*f;}void ins(int u){if(f[u]) s.erase(s.find((node){u,f[u]}));f[u]++;s.insert((node){u,f[u]});}void del(int u){s.erase(s.find((node){u,f[u]}));f[u]--;if(f[u]) s.insert((node){u,f[u]});}void write(int u){if(!u){puts("0");return;}top=0;while(u>9) sta[++top]=u%10,u/=10;sta[++top]=u;for(int i=top;i;i--) putchar(sta[i]+'0');puts("");}int main(){n=read();k=read();for(int i=1;i<=n;i++){pos=read();if(pos==1){a[++tot]=read();if(tot>k) del(a[tot-k]);ins(a[tot]);}else write((*s.begin()).x);}return 0;}


原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 成都公租房租满6年怎么办 二建审核资料如果照片丢失怎么办 身份证被冒用在外地办社保怎么办 蔷薇的嫩叶都被太阳晒死了怎么办 乐视手机进水了屏幕失灵怎么办 乐视手机进水了屏幕不显示怎么办 美团商家单量出现下滑怎么办 想开个小超市没经营过怎么办 华为7c手机wifi信号差怎么办 贞子从电视里爬出来怎么办 2个月的婴儿吓到怎么办 排卵日同房了没避孕怕怀孕怎么办 妻子因为我欺骗她要跟我离婚怎么办 老婆用苹果手机共享我的位置怎么办 孕妇餐后2小时血糖偏高怎么办 孕妇血糖餐后2小时数值高怎么办 股市退市的话股民的钱怎么办 美股股票退市了手里的股票怎么办 坐高铁安检时怕把包包弄坏了怎么办 很贵的包包高铁安检怎么办 如果过高铁安检东西被扣留怎么办 邻居家小孩把我家东西弄坏了怎么办 邻居早上6点放音乐扰民怎么办 隔壁楼邻居天天放音乐很吵怎么办 发现老公在卧室安了摄像头怎么办 憋的尿又没有厕所的时候怎么办 一岁宝宝拉屎总是拉出血怎么办 孩子鼻窦炎鼻子堵有白色鼻涕怎么办 家里阳台上老是有蝙蝠趴着怎么办 空调太冷在空调房里该怎么办 分手了怎么办不要挽回要重新吸引 过敏体质没打疫苗的孩子入学怎么办 遇到不认识的小姐姐问我问题怎么办 小孩孑脖子洛忱了痛怎么办 挤奶把乳腺挤肿了不出奶怎么办 遇到好兄弟在背后捅刀子怎么办 面对出轨还不想离婚的老公怎么办 法院执行局把案划错了不承认怎么办 手机nfc功能被手机壳挡住怎么办 飞信短信登录验证码达到上限怎么办 手机自带短信软件没了怎么办