B. Lucky
时间限制(普通/Java) : 20000 MS/ 30000 MS 运行内存限制 : 16384 KByte
总提交 : 255 测试通过 : 56
总提交 : 255 测试通过 : 56
题目描述
每个人有自己的lucky number,小A也一样。不过他的lucky number定义不一样。他认为一个序列中某些数出现的次数为n的话,都是他的lucky number。但是,现在这个序列很大,他无法快速找到所有lucky number。既然这样,他就想找到那些不是lucky number。
输入
多组输入数据
第一行有n和m。n表示出现次数为n的是lucky number,m表示序列的长度。2<=n<=10,m<=3*10^6,m%n!=0。
第二行为序列元素,每个元素都是正整数(int 型范围内)。
输出
输出那个不是lucky number的数。题目保证非lucky number只有一个。
样例输入
2 5
1 1 2 2 3
样例输出
3
==大仙给的代码,自己又稍微改了改,无限膜拜大仙~一直TL
实现代码:
<span style="font-size:12px;">#include<iostream> #include<cstdlib> #include<cstdio> #include<algorithm> using namespace std; int n,m,cnt,ans,i,j; const int N=3*1000000; int a[N]; int main() { while(~scanf("%d%d",&n,&m)) { for(i=0;i<m;i++) scanf("%d",&a[i]); ans=-1; sort(a,a+m); for(i=0;i<m-1;++i){ j=i,cnt=1; while(a[j]==a[j+1]){ cnt++; j++; } if(cnt!=n){ ans=a[i]; break; } i=j; if(ans==-1) ans=a[m-1]; } printf("%d ",ans); } }</span>
B. Lucky
时间限制(普通/Java) : 20000 MS/ 30000 MS 运行内存限制 : 16384 KByte
总提交 : 255 测试通过 : 56
总提交 : 255 测试通过 : 56
题目描述
每个人有自己的lucky number,小A也一样。不过他的lucky number定义不一样。他认为一个序列中某些数出现的次数为n的话,都是他的lucky number。但是,现在这个序列很大,他无法快速找到所有lucky number。既然这样,他就想找到那些不是lucky number。
输入
多组输入数据
第一行有n和m。n表示出现次数为n的是lucky number,m表示序列的长度。2<=n<=10,m<=3*10^6,m%n!=0。
第二行为序列元素,每个元素都是正整数(int 型范围内)。
输出
输出那个不是lucky number的数。题目保证非lucky number只有一个。
样例输入
2 5
1 1 2 2 3
样例输出
3
提示
题目来源
ACM爱好者协会
版权声明:本文为博主原创文章,未经博主允许不得转载。