【水题】统计数字
2015-08-23 11:31
615 查看
【题目描述】
某次科研调查时得到了n个自然数,每个数均不超过1500000000(1.5*109)。已知不相同的数不超过10000个,现在需要统计这些自然数各自出现的次数,并按照自然数从小到大的顺序输出统计结果。
【输入格式】
输入文件包含n+1行:
第1行是整数n,表示自然数的个数。
第2~n+1行每行一个自然数。
【输出格式】
输出文件包含m行(m为n个自然数中不相同数的个数),按照自然数从小到大的顺序输出。每行输出两个整数,分别是自然数和该数出现的次数,其间用一个空格隔开。
【样例输入】
8
2
4
2
4
5
100
2
100
【样例输出】
2 3
4 2
5 1
100 2
【分析】
用这个顺便练习了一下treap,水题就用来巩固一下吧
某次科研调查时得到了n个自然数,每个数均不超过1500000000(1.5*109)。已知不相同的数不超过10000个,现在需要统计这些自然数各自出现的次数,并按照自然数从小到大的顺序输出统计结果。
【输入格式】
输入文件包含n+1行:
第1行是整数n,表示自然数的个数。
第2~n+1行每行一个自然数。
【输出格式】
输出文件包含m行(m为n个自然数中不相同数的个数),按照自然数从小到大的顺序输出。每行输出两个整数,分别是自然数和该数出现的次数,其间用一个空格隔开。
【样例输入】
8
2
4
2
4
5
100
2
100
【样例输出】
2 3
4 2
5 1
100 2
【分析】
用这个顺便练习了一下treap,水题就用来巩固一下吧
#include<cstdio> #include<ctime> #include<cstdlib> #define N 100005 using namespace std; int ls ,rs ,key ,siz ,co ,ra ,root,len; int n; void push(int x) { siz[x]=siz[ls[x]]+siz[rs[x]]+co[x]; } void rturn(int &k) { int t=ls[k]; ls[k]=rs[t]; rs[t]=k; push(k); k=t; push(k); } void lturn(int &k) { int t=rs[k]; rs[k]=ls[t]; ls[t]=k; push(k); k=t; push(k); } void ins(int &k,int val) { if (!k) { int t=++len; key[t]=val; co[t]=1; siz[t]=1; ra[t]=rand(); k=t; return; } if (key[k]==val) { co[k]++; siz[k]++; return; } if (key[k]<val) { ins(rs[k],val); if (ra[k]>ra[rs[k]]) lturn(k); } else { ins(ls[k],val); if (ra[k]>ra[ls[k]]) rturn(k); } } void writel(int k) { if (!k) return; writel(ls[k]); printf("%d %d\n",key[k],co[k]); writel(rs[k]); } int main() { scanf("%d",&n); for (int i=1;i<=n;i++) { int x; scanf("%d",&x); ins(root,x); } writel(root); return 0; }
相关文章推荐
- Lua教程(七):数据结构详解
- 解析从源码分析常见的基于Array的数据结构动态扩容机制的详解
- C#数据结构揭秘一
- 数据结构之Treap详解
- JavaScript数据结构和算法之图和图算法
- Java数据结构及算法实例:冒泡排序 Bubble Sort
- Java数据结构及算法实例:插入排序 Insertion Sort
- Java数据结构及算法实例:考拉兹猜想 Collatz Conjecture
- java数据结构之java实现栈
- java数据结构之实现双向链表的示例
- Java数据结构及算法实例:选择排序 Selection Sort
- Java数据结构及算法实例:朴素字符匹配 Brute Force
- Java数据结构及算法实例:汉诺塔问题 Hanoi
- Java数据结构及算法实例:快速计算二进制数中1的个数(Fast Bit Counting)
- java数据结构和算法学习之汉诺塔示例
- Java数据结构及算法实例:三角数字
- Java数据结构之简单链表的定义与实现方法示例
- 数据结构之AVL树详解
- qqwry.dat的数据结构图文解释第1/2页
- 【数据结构之旅】稀疏矩阵的快速转置