COGS 74. [NOIP2006] 明明的随机数 (Splay小练习。。)
☆ 输入文件:random.in 输出文件:random.out 简单对比
时间限制:1 s 内存限制:128 MB
【问题描述】
明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了 N 个 1 到 1000 之间的随机整数( N ≤ 100 ),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按 照 排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。
【输入格式】
输入文件 random.in 有 2 行,第 1 行为 1 个正整数,表示所生成的随机数的个数:N
第 2 行有 N 个用空格隔开的正整数,为所产生的随机数。
【输出格式】
输出文件 random.out 也是 2 行,第 1 行为 1 个正整数 M ,表示不相同的随机数的个数。第 2 行为 M 个用空格隔开的正整数,为从小到大排好序的不相同的随机数。
【输入输出样例】
输入:
10
20 40 32 67 40 20 89 300 400 15
输出:
8
15 20 32 40 67 89 300 400
splay练习 。。
#include <ctype.h>
#include <cstdio>
bool vis[];
int siz[],cnt[],n,data[],cn,root,tot,fa[],ch[][];
void read(int &x)
{
x=;bool f=;
register char ch=getchar();
for(;!isdigit(ch);ch=getchar()) if(ch=='-') f=;
for(;isdigit(ch);ch=getchar()) x=x*+ch-'';
x=f?(~x)+:x;
}
inline void pushup(int rt)
{
int l=ch[rt][],r=ch[rt][];
siz[rt]=siz[l]+siz[r]+cnt[rt];
}
void ins(int &rt,int x)
{
if(rt==)
{
rt=++tot;
data[tot]=x;
siz[tot]=cnt[tot]=;
return;
}
if(x==data[rt])
{
cnt[rt]++;
siz[rt]++;
return;
}
if(x<data[rt])
{
ins(ch[rt][],x);
fa[ch[rt][]]=rt;
pushup(rt);
}
else
{
ins(ch[rt][],x);
fa[ch[rt][]]=rt;
pushup(rt);
}
}
int getkth(int rt,int k)
{
int l=ch[rt][];
if(siz[l]+<=k&&k<=siz[l]+cnt[rt]) return data[rt];
if(k<siz[l]+) return getkth(ch[rt][],k);
if(siz[l]+cnt[rt]<k) return getkth(ch[rt][],k-(siz[l]+cnt[rt]));
}
int main()
{
freopen("random.in","r",stdin);freopen("random.out","w",stdout);
read(n);
for(int a,i=;i<=n;i++)
{
read(a);
if(!vis[a])
{
vis[a]=;
cn++;
ins(root,a);
}
}
printf("%d\n",cn);
for(int i=;i<=cn;i++) printf("%d ",getkth(root,i));
return ;
}
COGS 74. [NOIP2006] 明明的随机数 (Splay小练习。。)的更多相关文章
- NOIP 2006 明明的随机数
洛谷 P1059 明明的随机数 洛谷传送门 JDOJ 1423: [NOIP2006]明明的随机数 T1 JDOJ传送门 Description 明明想在学校中请一些同学一起做一项问卷调查,为了实验的 ...
- wikioi 1075 明明的随机数
/*============================================================ 1075 明明的随机数 题目描述 Description 明明想在学校中请 ...
- C语言 · 明明的随机数
算法训练 明明的随机数 时间限制:1.0s 内存限制:256.0MB 问题描述 明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的 ...
- php实现 明明的随机数
php实现 明明的随机数 一.总结 一句话总结: 1.asort是干嘛的? asort — 对数组进行排序并保持索引关系 2.从控制台取数据怎么取? trim(fgets(STDIN)) 3.多组测试 ...
- 明明的随机数(0)<P2006_1>
明明的随机数 (random.pas/c/cpp) [问题描述] 明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤100),对于其中 ...
- Java实现 蓝桥杯VIP 算法训练 明明的随机数
问题描述 明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤100),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应 ...
- 2006NOIP普及组:明明的随机数
明明的随机数 时间限制:1000ms 内存限制:65536KB 题目描述: 明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数 ...
- NOIP2006 1.明明的随机数
题目:明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤100),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不 ...
- 武汉科技大学ACM:1008: 明明的随机数
Problem Description 明明想在学校中请一些同学一起做一项问卷 调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤100),对于其中重复的数字,只保留一个, ...
随机推荐
- 尚观Linux最佳入门高清视频教程033/133/253
[高清]Linux 最佳入门ULE112- RHCE033部分高清视频教程[尚观原创] 视频简介:高清RHCE033部分是RHCE考试中的基础部分,同时也是我们Linux入门的必 备学习资料.想学好L ...
- Struts2中的FilterDispatcher和StrutsPrepareAndExecuteFilter的区别
1.转自:https://blog.csdn.net/zwx521515/article/details/79300453 在Struts2开发中,很多人问到,声明过滤器的时候,为什么有的时候用&qu ...
- django上课笔记2-视图CBV-ORM补充-Django的自带分页-Django的自定义分页
一.视图CBV 1.urls url(r'^login.html$', views.Login.as_view()), 2.views from django.views import View cl ...
- IOS高级开发~Runtime(二)
#import <Foundation/Foundation.h> @interface CustomClass : NSObject { NSString *varTest1; NSSt ...
- Cloudera Manager架构原理
cloudera manager的核心是管理服务器,该服务器承载管理控制台的Web服务器和应用程序逻辑,并负责安装软件,配置,启动和停止服务,以及管理上的服务运行群集. Cloudera Manage ...
- redis查数据
1 连接服务 [root@redis1-20 ~]# telnet 127.0.0.1 6380 Trying 127.0.0.1... Connected to 127.0.0.1. Escape ...
- Python实现两已知排好序的列表合并成一个排好序的列表
#方法0.5--- lst1 = [1, 3, 7, 9, 12] lst2 = [4, 8, 9, 13, 15, 19] def merge(a, b): c = [] h = j = 0 whi ...
- 线段树(单点更新)/树状数组 HDOJ 1166 敌兵布阵
题目传送门 /* 线段树基本功能:区间值的和,修改某个值 */ #include <cstdio> #include <cstring> #define lson l, m, ...
- archive log full ora-00257
############# sample 0 asmcmd show free 37G in archive_log ASMCMD> lsdgState Type Rebal Unbal Sec ...
- HAL之串口
在STM32cubeMX中 1 外设功能打开 2 GPIO对应管脚的串口功能打开 3 对应GPIO引脚的配置 4串口的配置,中断的设置 在MDK中 5.1 串口初始化MX_USART1_UART_In ...