1418 动态顺序统计量
来源:互联网 发布:php 获取上传图片类型 编辑:程序博客网 时间:2024/05/17 22:32
利用二叉排序树,设计一个能支持快速顺序统计量操作的数据结构。这个数据结构支持三种操作,Insert x 往数据集合中插入一个数x, Delete x 删除数据集合中的一个数x, Order x 输出目前数据集合中第x大的数。(保证数据集合中的所有元素均不相等,本题数据均为int)
- 输入
第一行为初始的数据集合, 元素之间用空格隔开,第二行为操作的条数m,下面的m行有m条指令,指令的格式参照题目描述。
- 输出
对应每一个order x指令,输出目前数据集合中第x大的数。
简单的查找即可
#include <stdio.h>#include <string.h>char s[100000];int a[100000];main(){int number;int length,i,j;int p;int up;int temp;int count;char op;up=0;gets(s);length=strlen(s);i=0;p=0;for(i=0;i<length;i++){if(s[i]!=','){p=0;while(s[i] >= '0' && s[i] <= '9'&&i<length){p = p * 10 + s[i] - '0';i++;}a[up++]=p;}elsecontinue;}for(i=0;i<up;i++)for(j=i+1;j<up;j++){if(a[i]>a[j]){temp=a[i];a[i]=a[j];a[j]=temp;}}scanf("%d",&count);while(count--){getchar();scanf("%c",&op);if(op=='O'){for(i=0;i<5;i++)scanf("%c",&op);scanf("%d",&temp);printf("%d\n",a[temp-1]);}if(op=='I'){for(i=0;i<6;i++) scanf("%c",&op);scanf("%d",&temp);if(temp>a[up-1])a[up++]=temp;else{for(i=0;i<up;i++){if(a[i]>temp){ j=i; break;}elsecontinue;}for(i=up;i>j;i--)a[i]=a[i-1];a[j]=temp; up++;}}if(op=='D'){for(i=0;i<6;i++)scanf("%c",&op);scanf("%d",&temp);for(i=0;i<up;i++)if(a[i]==temp)break;for(j=i;j<up-1;j++)a[j]=a[j+1];up--;}}}
- 1418 动态顺序统计量
- 顺序统计量
- 顺序统计量
- 顺序统计量的选择
- 顺序统计量和中位数
- 排序和顺序统计量
- 中位数与顺序统计量
- 中位数与顺序统计量
- 动态顺序统计
- 第K顺序统计量的求解
- 20141007个人日志(顺序统计量)
- 第九章 中位数和顺序统计量
- (p120)线性时间找到顺序统计量
- 算法导论(4) 顺序统计量
- 顺序统计量(Order Statistic)小结
- 第二部分 排序和顺序统计量
- 概率统计中的样本矩和顺序统计量
- 中位数和顺序统计学之求解顺序统计量
- 1412 二叉树的繁茂度
- Spring学习笔记(15)----使用Spring注解方式管理事务
- 1417 遍历转换
- Spring学习笔记(16)----使用Spring配置文件实现事务管理
- 或许过了这段时间就没事了
- 1418 动态顺序统计量
- poj3302
- qt arm configure
- 1419 图的DFS遍历
- 第三章:内核对象
- ASP、JSP、PHP 、Perl、.NET 等WEB开发语言比较
- getCurrentSession 与 openSession() 的区别 .
- java 取节点中的值
- C++运算符重载