BZOJ 2456 mod

又见神TM卡内存题。这道题是要求众数。

怎么求呢?首先这道题要求众数的个数大于一半,因此我们读入一个,如果和rec不一样就cnt--。如果cnt<=0了,则更新rec为当前数。

听起来很有问题?其实这玩意儿是没问题的。。。然而交上去还是mle掉。

为什么呢?库函数要占内存。

。。。。。。。。。WTF

#include<cstdio>
using namespace std;
int n,cnt,a,rec=0;
int main()
{
scanf("%d",&n);
while (n)
{
n--;
scanf("%d",&a);
if (a==rec) cnt++;
else
{
cnt--;
if (cnt<0) {rec=a;cnt=1;}
}
}
printf("%d",rec);
return 0;
}

时间: 2024-08-10 00:00:07

BZOJ 2456 mod的相关文章

BZOJ 2456 杂题 卡内存

2456: mode Time Limit: 1 Sec  Memory Limit: 1 MBSubmit: 3702  Solved: 1551[Submit][Status][Discuss] Description 给你一个n个数的数列,其中某个数出现了超过n div 2次即众数,请你找出那个数. Input 第1行一个正整数n.第2行n个正整数用空格隔开. Output 一行一个正整数表示那个众数. Sample Input 5 3 2 3 1 3 Sample Output 3 HI

BZOJ 2456: mode(新生必做的水题)

2456: mode Time Limit: 1 Sec  Memory Limit: 1 MB Submit: 4868  Solved: 2039 [Submit][Status][Discuss] Description 给你一个n个数的数列,其中某个数出现了超过n div 2次即众数,请你找出那个数. Input 第1行一个正整数n.第2行n个正整数用空格隔开. Output 一行一个正整数表示那个众数. Sample Input 53 2 3 1 3 Sample Output 3 H

[BZOJ] 2456: mode #众数计数法

2456: mode Time Limit: 1 Sec  Memory Limit: 1 MBSubmit: 5969  Solved: 2414[Submit][Status][Discuss] Description 给你一个n个数的数列,其中某个数出现了超过n div 2次即众数,请你找出那个数. Input 第1行一个正整数n.第2行n个正整数用空格隔开. Output 一行一个正整数表示那个众数. Sample Input 5 3 2 3 1 3 Sample Output 3 HI

bzoj 2456: mode

1 #include<cstdio> 2 #include<algorithm> 3 using namespace std; 4 int n,t,sum; 5 int main() 6 { 7 scanf("%d%d",&n,&t); 8 sum=1; 9 for(int i=2;i<=n;i++) 10 { 11 int a1; 12 scanf("%d",&a1); 13 if(a1==t) 14 sum+

BZOJ 2456

Description 给你一个n个数的数列,其中某个数出现了超过n div 2次即众数,请你找出那个数. Input 第1行一个正整数n.第2行n个正整数用空格隔开. Output 一行一个正整数表示那个众数. Sample Input 5 3 2 3 1 3 Sample Output 3 HINT 100%的数据,n<=500000,数列中每个数<=maxlongint. zju2132 The Most Frequent Number Source 鸣谢 黄祎程 AC代码: #incl

bzoj 2456: mode【瞎搞】

这题加个#include #include<cstdio> int n,la,x,tot; int main() { scanf("%d",&n); for(int i=1;i<=n;i++) { scanf("%d",&x); if(x==la) tot++; else if(!tot) la=x,tot=1; else tot--; } printf("%d",la); return 0; } 原文地址:ht

bzoj 2456: mode 思维题 好题

Code: #include<cstdio> int main(){ //freopen("input.in","r",stdin); int n,cur,res=0; scanf("%d",&n); for(int i=1;i<=n;++i){ int f; scanf("%d",&f); if(res==0){ cur=f,res=1; } else { if(f==cur) ++res;

【机智题?】求数列中众数

求数列中众数 & 唯一出现为奇次数 前言: 我们的生活中经常有很多令人叫绝的优秀算法.他们往往既不冗长,也不笨拙. 蒟蒻的我能写暴力!虽然不是说不可以这么写算法,只是毕竟是算法竞赛,这样搭建的程序终究还是经不起考验的. 就如大算法(大?),让小算法组合成大算法,虽然有时不太容易能看出整体的效率,那我们为何不让每部分最优呢.(最优子结构?) 时间,空间, 我们不仅要能互换代价,还要让它们同时缩小! 正文: (-  . -) 嗯... 那个,啥,以上的前言等于啥都没说.不用管我就是了. 我们直接看题

除法散列函数之散列值问题

算法导论对于除法散列函数的描述.其中涉及到一小点数学问题: k mod m时,m之所以为素数时为了使得k在m所在的素数域上保持唯一性(根据欧拉定理和费马小定理) 散列函数: H(k) = k Mod m 其中m的取值如是描述: 应用除法散列法的时候,要避免选择m的某些值,例如,m不应该为2 的幂 .(尽量取素数,并且距离 2^p 比较远的数值. )因为如果 m = 2^p (2的p次方),则 H(k) 就是k的p个最低位数字.除非一直各种最低p位的排列形式为等可能的,否则在设计散列函数的时候,最