HDU 3785 寻找大富翁 (排序)
来源:互联网 发布:ebsco数据库如何进入 编辑:程序博客网 时间:2024/06/06 23:18
寻找大富翁
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 4132 Accepted Submission(s): 1698
Problem Description
浙江桐乡乌镇共有n个人,请找出该镇上的前m个大富翁.
Input
输入包含多组测试用例.
每个用例首先包含2个整数n(0<n<=100000)和m(0<m<=10),其中: n为镇上的人数,m为需要找出的大富翁数, 接下来一行输入镇上n个人的财富值.
n和m同时为0时表示输入结束.
每个用例首先包含2个整数n(0<n<=100000)和m(0<m<=10),其中: n为镇上的人数,m为需要找出的大富翁数, 接下来一行输入镇上n个人的财富值.
n和m同时为0时表示输入结束.
Output
请输出乌镇前m个大富翁的财产数,财产多的排前面,如果大富翁不足m个,则全部输出,每组输出占一行.
Sample Input
3 12 5 -15 31 2 3 4 50 0
Sample Output
55 4 3
#include<iostream>#include<stdio.h>#include<string.h>using namespace std;int a[100010];int aux[100010];void swap(int *a,int *b){ int t=*a; *a=*b; *b=t;}int partition(int a[],int l,int h){ int i=l; int j=h+1; int v=a[l]; while(1){ while(a[++i]>v)if(i==h)break; while(a[--j]<v)if(j==l)break; if(i>=j)break; swap(&a[i],&a[j]); } swap(&a[l],&a[j]); return j;}void q_sort(int a[], int l,int h){ if(l>=h)return; int j=partition(a,l,h); q_sort(a,l,j-1); q_sort(a,j+1,h);}void merge(int a[],int l,int mid,int h){ int i=l; int j=mid+1; for(int k=l;k<=h;++k) aux[k]=a[k]; for(int k=l;k<=h;++k){ if(i>mid)a[k]=aux[j++]; else if(j>h)a[k]=aux[i++]; else if(aux[i]>aux[j])a[k]=aux[i++]; else a[k]=aux[j++]; }}void m_sort(int a[],int l,int h){ if(h<=l)return ; int mid=l+(h-l)/2; m_sort(a , l , mid); m_sort(a,mid+1,h); merge(a,l,mid,h);}int main(int argc, char *argv[]){ freopen("3785.in","r",stdin); int n,m; while(scanf("%d%d",&n,&m)==2) { memset(a,0,sizeof(a)); if(n==0&&m==0)return 0; for(int i=0;i<n;++i) scanf("%d",&a[i]); q_sort(a,0,n-1); for(int i=0;;++i) { if(m)printf("%d",a[i]); m--; if(m)printf(" "); if(m==0)break; } printf("\n"); } return 0;}
归并和快速各写了次~
0 0
- HDU 3785 寻找大富翁 (排序)
- HDU 3785 寻找大富翁
- HDU 3785 寻找大富翁
- HDU 3785 寻找大富翁
- HDU 3785 寻找大富翁。
- 【hdu 3785】寻找大富翁
- HDU 3785-寻找大富翁
- HDU-#3785 寻找大富翁(优先队列)
- HDU 3785 寻找大富翁 【栈】
- 【HDU 3785】【水题】寻找大富翁
- G - 寻找大富翁HDU 3785(对和比大小)
- 【HDU 3785】寻找大富翁(sort或者优先队列-水题)
- HDU-寻找大富翁
- 数据结构实验之排序四:寻找大富翁(堆排序)
- 数据结构实验之排序四:寻找大富翁(堆排序)
- 数据结构实验之排序四:寻找大富翁(堆排序)
- 排序——寻找大富翁
- hdoj 3785 寻找大富翁(优先队列)
- 12-11java面向对象之内部类操作
- 小代码总结
- ActiveMQ-cpp的安装与使用(详细教程)
- Spice协议----输入通道定义
- FreeRDP CommandLineInterface
- HDU 3785 寻找大富翁 (排序)
- ubuntu环境下我的第一个android apk (2014.12.12更新)
- Log4J使用笔记
- 浅谈LCA的离线算法
- Linux shell 编程入门
- OC学习篇之---文件的操作
- SQLServer千万数量级分页公共存储过程
- Android Gradle编译学习日记之一(搭建 Gradle 环境以及编译 Android 应用)
- Hadoop读书笔记(十四)MapReduce中TopK算法(Top100算法)