OJ_1034 寻找大富翁
来源:互联网 发布:中文文本分析软件 编辑:程序博客网 时间:2024/05/20 09:09
#include <iostream>using namespace std;void swap(int &a,int &b){ int temp=a; a=b; b=temp;}// 大根堆 void heapify(int *ary,int i,int size){ int l,r,max; while(i<size) { l=2*i+1; r=l+1; max=i; if(l<size&&ary[i]<ary[l]) i=l; if(r<size&&ary[i]<ary[r]) i=r; if(max!=i) swap(ary[i],ary[max]); else break; }}void buildheap(int *ary,int size){ for(int i=(size-2)/2;i>=0;i--) heapify(ary,i,size);}void func(){ int n,m; while(cin>>n>>m) { int ary[n]; if(n==0&&m==0)break; for(int i=0;i<n;i++) { cin>>ary[i]; } buildheap(ary,n); int j; for(j=0;j<m-1;j++) { if(j<n-1){ swap(ary[0],ary[n-1-j]); cout<<ary[n-1-j]<<" "; heapify(ary,0,n-1-j); } } swap(ary[0],ary[n-1-j]); cout<<ary[n-1-j]<<endl; }}int partition(int *ary,int l,int r){ int m=((r-l)>>1)+l; swap(ary[l],ary[m]); int i=l,j=r; int key=ary[l]; while(i<j){ while(i<j&&ary[j]>=key)j--; ary[i]=ary[j]; while(i<j&&ary[i]<=key)i++; ary[j]=ary[i]; } ary[i]=key; return i; }void quicksort(int *ary,int l,int r){ if(l<r){ int m=partition(ary,l,r); quicksort(ary,l,m-1); quicksort(ary,m+1,r); }}void func1(){ int n,m; while(cin>>n>>m) { int ary[n]; if(n==0&&m==0)break; for(int i=0;i<n;i++) cin>>ary[i]; quicksort(ary,0,n-1); int j=0; for(;j<m-1;j++) { if(j<n-1){ cout<<ary[n-1-j]<<" "; } } cout<<ary[n-1-j]<<endl; } }int main(int argc, char *argv[]){//printf("Hello, world\n");//func();func1();return 0;}
快速排序或堆排序或其他排序,比如计数排序
- 题目描述:
- 浙江桐乡乌镇共有n个人,请找出该镇上的前m个大富翁.
- 输入:
- 输入包含多组测试用例.
每个用例首先包含2个整数n(0<n<=100000)和m(0<m<=10),其中: n为镇上的人数,m为需要找出的大富翁数, 接下来一行输入镇上n个人的财富值.
n和m同时为0时表示输入结束.
- 输出:
- 请输出乌镇前m个大富翁的财产数,财产多的排前面,如果大富翁不足m个,则全部输出,每组输出占一行.
- 样例输入:
3 12 5 -15 31 2 3 4 50 0
- 样例输出:
55 4 3
0 0
- OJ_1034 寻找大富翁
- 寻找大富翁
- 寻找大富翁
- 寻找大富翁
- 寻找大富翁
- 寻找大富翁
- 寻找大富翁
- 寻找大富翁
- 寻找大富翁
- 寻找大富翁
- 寻找大富翁
- 寻找大富翁
- 寻找大富翁
- 寻找大富翁
- hdoj3785寻找大富翁
- HDU 3785 寻找大富翁
- HDU 3785 寻找大富翁
- HDU3785:寻找大富翁
- OJ_1031
- java数据存储
- OJ_1032
- OJ_1033
- 八大创意理论应用
- OJ_1034 寻找大富翁
- title_test281039763
- title_test-481668426
- title_test2048116132
- title_test-298106778
- OJ_1035 找出直系亲属
- title_test-1624256997
- title_test-159395934
- title_test-1737197803