2007提高。。。。。统计数组。。坑
2016-06-17 13:55
155 查看
题目:
某次科研调查时得到了n个自然数,每个数均不超过1500000000(1.5*10^9)。已知不相同的数不超过10000个,现在需要统计这些自然数各自出现的次数,并按照自然数从小到大的顺序输出统计结果。
数据范围:
40%的数据满足:1<=n<=1000
80%的数据满足:1<=n<=50000
100%的数据满足:1<=n<=200000,每个数均不超过1 500 000 000(1.5*109)
看完数据范围就懵逼了····
什么鬼数据,,,死大死大的,,
Time Limit Exceeded
#include<iostream>
#include<algorithm>
using namespace std;
const int maxn=233333;
int a[maxn]={},sum[maxn]={},shu[maxn];
int main()
{
a[0]=0;
int n,c=0,min,max,b=1;
cin>>n;
for(int i=1;i<=n;i++)
cin>>a[i];
sort(a+1,a+1+n);
max=a
;
min=a[1];
a[n+1]=0;
for(int i=min;i<=max;i++)
{
int he=0;
for(int j=b;j<=n;j++)
{
if(a[j]!=i)
break;
if(a[j]==i)
{
he++;
sum[c]=he;
shu[c]=i;
}
if(a[j]!=a[j+1])
{
c++;
b=j+1;
break;
}
}
}
for(int i=0;i<c;i++)
cout<<shu[i]<<" "<<sum[i]<<endl;
return 0;
}
好不容易想出来的,,,最后超时了。。心痛。。
但是,在聪明的我费尽心思之后终于想出了正确的代码!!!!
Accepted
#include<iostream>
#include<algorithm>
using namespace std;
const int maxn=233333;
int a[maxn]={},sum[maxn]={},shu[maxn],b[maxn]={};
int main()
{
int n,c=0,d=0,he=0;
cin>>n;
for(int i=1;i<=n;i++)
cin>>a[i];
sort(a+1,a+1+n);
for(int i=1;i<=n;i++)
{
if(a[i]!=b[d])
{
d++;
b[d]=a[i];
}
}
d=1;
for(int i=1;i<=n;i++)
{
if(a[i]==b[d])
{
he++;
shu[d]=a[i];
sum[d]=he;
}
if(a[i]!=a[i+1])
{
d++;
he=0;
}
}
for(int i=1;i<d;i++)
cout<<shu[i]<<' '<<sum[i]<<endl;
return 0;
}
为自己鼓掌!!!!!
啪啪啪啪啪啪啪啪啪啪啪啪啪啪啪啪啪啪啪啪
某次科研调查时得到了n个自然数,每个数均不超过1500000000(1.5*10^9)。已知不相同的数不超过10000个,现在需要统计这些自然数各自出现的次数,并按照自然数从小到大的顺序输出统计结果。
数据范围:
40%的数据满足:1<=n<=1000
80%的数据满足:1<=n<=50000
100%的数据满足:1<=n<=200000,每个数均不超过1 500 000 000(1.5*109)
看完数据范围就懵逼了····
什么鬼数据,,,死大死大的,,
Time Limit Exceeded
#include<iostream>
#include<algorithm>
using namespace std;
const int maxn=233333;
int a[maxn]={},sum[maxn]={},shu[maxn];
int main()
{
a[0]=0;
int n,c=0,min,max,b=1;
cin>>n;
for(int i=1;i<=n;i++)
cin>>a[i];
sort(a+1,a+1+n);
max=a
;
min=a[1];
a[n+1]=0;
for(int i=min;i<=max;i++)
{
int he=0;
for(int j=b;j<=n;j++)
{
if(a[j]!=i)
break;
if(a[j]==i)
{
he++;
sum[c]=he;
shu[c]=i;
}
if(a[j]!=a[j+1])
{
c++;
b=j+1;
break;
}
}
}
for(int i=0;i<c;i++)
cout<<shu[i]<<" "<<sum[i]<<endl;
return 0;
}
好不容易想出来的,,,最后超时了。。心痛。。
但是,在聪明的我费尽心思之后终于想出了正确的代码!!!!
Accepted
#include<iostream>
#include<algorithm>
using namespace std;
const int maxn=233333;
int a[maxn]={},sum[maxn]={},shu[maxn],b[maxn]={};
int main()
{
int n,c=0,d=0,he=0;
cin>>n;
for(int i=1;i<=n;i++)
cin>>a[i];
sort(a+1,a+1+n);
for(int i=1;i<=n;i++)
{
if(a[i]!=b[d])
{
d++;
b[d]=a[i];
}
}
d=1;
for(int i=1;i<=n;i++)
{
if(a[i]==b[d])
{
he++;
shu[d]=a[i];
sum[d]=he;
}
if(a[i]!=a[i+1])
{
d++;
he=0;
}
}
for(int i=1;i<d;i++)
cout<<shu[i]<<' '<<sum[i]<<endl;
return 0;
}
为自己鼓掌!!!!!
啪啪啪啪啪啪啪啪啪啪啪啪啪啪啪啪啪啪啪啪
相关文章推荐
- jdk6之前版本为什么需要设置classpath环境变量?为什么tomcat为什么不需要设置classpath环境变量?
- 人生第一次删好友,删的就是你!连路飞都怒了!
- Android三种实现自定义ProgressBar的方式介绍
- Oracle学习笔记(四)
- android listview系列之初步接触listview(一)
- eclipse进行run android application是出现Unable to execute dex Java heap space解决
- xshell连接linux中文编码问题
- Android传感器(一):传感器列表
- The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.
- 【bzoj1398】Vijos1382寻找主人 Necklace
- 5、防火墙介绍和使用
- JMF开启摄像头
- 麒麟开源堡垒机安装部署测试及优缺点总结
- IntelliJ IDEA WEB项目的部署配置
- unbuntu下安装qq
- iOS 高仿:花田小憩3.0.1
- 高德地图V3.3.2在非arm64-v8a,armeabi的CPU架构手机上运行奔溃的问题
- MySQL 半同步复制详解
- 4、安全的WEB和邮件服务器
- 0617 操作系统实验4 主存空间的分配和回收