1164 统计数字

 

2007年NOIP全国联赛提高组

 时间限制: 1
s

 空间范围: 128000
KB

 题目等级 : 白银
Silver

题解

 

 

 

题目叙述 Description

【问题讲述】
某次科研调查时得了n个自然数,每个数均未越1500000000(1.5*109)。已知道不均等的数
非超过10000
独,现在待统计这些自然数各自出现的次数,并按照自然数从小至好的各个输出都
计结果。

输入描述 Input Description

第1履行是整数n,表示自然数的个数。
第2~n+1 行每行一个自然数。

出口描述 Output Description

出口包含m行(m为n个自然数中未平等数之个数),按照自然数从小到充分
的顺序输出。每行输出两个整数,分别是自然数和该数出现的次数,其间用一个空格隔开。

样例输入 Sample Input

8
2
4
2
4
5
100
2
100

样例输出 Sample Output

2 3
4 2
5 1
100 2

多少范围和提示 Data Size & Hint

【限制】
40%之数目满足:1<=n<=1000
80%的数额满足:1<=n<=50000
100%底多寡满足:1<=n<=200000,每个数都无超过1 500 000
000(1.5*10^9)

 1 #include<iostream>
 2 #include<algorithm>
 3 using namespace std;
 4 int a[10000001];
 5 int tot=0;
 6 int maxn;
 7 int ma;
 8 int ans=0;
 9 int main()
10 {
11     int n;
12     cin>>n;
13     for(int i=1;i<=n;i++)
14     {
15         cin>>a[i];
16     }
17     sort(a,a+n+1);
18     for(int i=1;i<=n;i++)
19     {
20         if(a[i]==a[i+1])
21         {
22             ans++;
23         }
24         else 
25         {
26             cout<<a[i]<<" "<<ans+1<<endl;
27             ans=0;
28         }
29     }
30     return 0;
31 } 

 

9273:PKU2506Tiling

  • 查看
  • 提交
  • 统计
  • 提问

毕竟时限制: 
2000ms

单个测试点时间限定: 
1000ms

内存限制: 
131072kB

描述
对一个2行N列的人行道。现在用1*2,2*2底砖块去铺满。问有稍许种不同之计。

产图是一个2行17排列的人行道的某种铺法。

图片 1

输入
整整测试出多组数据,请完文件之了。每行给有一个数字N,0 <= n <=
250

输出
如题

样例输入
2
8
12
100
200

样例输出
3
171
2731
845100400152152934331135470251
1071292029505993517027974728227441735014801995855195223534251

 1 #include <algorithm>
 2 #include <iostream>
 3 #include <string.h>
 4 #include <stdio.h>
 5 #include <math.h>
 6 using namespace std;
 7 int len[255],a[255][305],n,k;
 8 int main()
 9 {
10 memset(a,0,sizeof(a));
11 memset(len,1,sizeof(len));
12 a[0][1]=1;
13 a[1][1]=1;
14 for(int i=2;i<=250;i++)
15 {
16 for(int j=1;j<=300;j++)
17 {
18 a[i][j]+=a[i-1][j]+a[i-2][j]*2;
19 if(a[i][j]>=10)
20 a[i][j+1]=a[i][j]/10,a[i][j]%=10;
21 }
22 for(k=300;k>=1;k--)
23 if(a[i][k]>0)
24 break;
25 len[i]=k;
26 }
27 while(scanf("%d",&n)!=EOF)
28 {
29 if(n>1)
30 {
31 for(int i=len[n];i>=1;i--)
32 printf("%d",a[n][i]);
33 printf("\n");
34 }
35 else
36 printf("1\n");
37 }
38 return 0;
39 }