POJ 3784 Running Median简单版本可AC
来源:互联网 发布:杭州炎魂网络 编辑:程序博客网 时间:2024/05/01 15:15
题目链接:点击打开链接
题目描述: 第一行是测试数据个数;
之后一行是 测试组号 和 一个整数M 1—9999
之后一行是M个数字 (32位有符号数字, 每行10个)
输出为 组号和中位数的数目(M/2 +1)
之后输出每个奇数下标 之前的数字序列的中位数 (每行10个)
题目解法:排序
#include<algorithm>#include<string>#include<cmath>#include<cstdio>void run(){ int n,m; scanf("%d%d",&n,&m); int i,num[10001]; int ans[10001]={0}; int u = 2; printf("%d %d\n",n,(m+1)/2); scanf("%d",&num[1]); ans[1]=num[1]; for(i=2;i<=m;i++) { int tmp,j,k; scanf("%d",&tmp); if(tmp<=num[1]) //比第一个小,则后面的往后移 { for(k=i-1;k>=1;k--) { num[k+1]=num[k]; } num[1]=tmp; } else if(tmp>=num[i-1]) //比最后一个大 { num[i]=tmp; } else { bool f=false; for(j=i-1;j>=1;j--) { if(tmp>=num[j-1] && tmp<=num[j]) //找要插入的位置位置 { f=true; int k; for(k=i-1;k>=j;k--) { num[k+1]=num[k]; } num[j]=tmp; } if(f==true) break; } } if(i%2==1) //记录奇数位置 { ans[u++]=num[(i+1)/2]; } } for(i=1;i<u;i++) { if(i%10==0 || i==u-1) printf("%d\n",ans[i]); else printf("%d ",ans[i]); }}int main(){ int total; scanf("%d",&total); for(int now=1;now<=total;now++) run(); return 0;}
0 0
- POJ 3784 Running Median简单版本可AC
- POJ 3784 Running Median
- POJ 3784 Running Median
- POJ 3784 Running Median
- POJ 3784 Running Median
- POJ 3784 Running Median
- poj 3784 Running Median
- poj 3784 Running Median/sbt
- poj 3784 Running Median 二叉堆
- POJ 3784.Running Median
- POJ 3784 Running Median 对顶堆算法
- POJ 3784 Running Median 动态求中位数 堆
- POJ 3784 Running Median 动态求中位数 堆
- Poj 1204 简单AC自动机
- poj3784 Running Median
- HDU 3282-Running Median
- POJ 1958 没有AC的版本
- Median POJ
- [LeetCode]Insertion Sort List
- canvas绘图详解笔记(一)
- canvas绘图详解笔记(一)
- spring 事务管理个人笔记
- 学习运维的日子
- POJ 3784 Running Median简单版本可AC
- Hadoop学习笔记(作业、任务执行性能优化,故障,命令,日志,第三方工具)
- Eclipse环境下配置spket中ExtJS提示
- canvas绘图详解笔记(一)
- java线程创建的两个方法
- canvas绘图详解笔记(一)
- LeetCode OJ 之 Implement Queue using Stacks(使用栈实现队列)
- canvas绘图详解笔记(一)
- 关于SharedPreferences文件删除不掉的问题