hdu——2019数列有序!

来源:互联网 发布:mac 打开icloud 编辑:程序博客网 时间:2024/04/25 12:37

数列有序!

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 68362    Accepted Submission(s): 28974


Problem Description
有n(n<=100)个整数,已经按照从小到大顺序排列好,现在另外给一个整数x,请将该数插入到序列中,并使新的序列仍然有序。
 

Input
输入数据包含多个测试实例,每组数据由两行组成,第一行是n和m,第二行是已经有序的n个数的数列。n和m同时为0标示输入数据的结束,本行不做处理。
 

Output
对于每个测试实例,输出插入新的元素后的数列。
 

Sample Input
3 31 2 40 0
 

Sample Output
1 2 3 4
 

Author
lcy
 

Source
C语言程序设计练习(三)
 题目很简单,主要是复习一下优先队列的实现方式,即比较函数的写法
首先直接用stl提供的优先队列写法:
#include<iostream>#include<cstdio>#include<map>#include<vector>#include<iomanip>#include<cmath>#include<queue>#include<stack>#include<algorithm>#include<string>#include<cstring>#include<cctype>using namespace std;int main(){int n,m;while(cin>>n>>m,n||m){priority_queue<int,vector<int>,greater<int> > que;int tem;for(int i=0;i<n;i++){cin>>tem;que.push(tem);}que.push(m);while(que.size()>0){cout<<que.top();que.pop();if(!que.empty()) cout<<" ";}cout<<endl;}return 0;}

接着是自己写比较函数:
#include<iostream>#include<cstdio>#include<map>#include<vector>#include<iomanip>#include<cmath>#include<queue>#include<stack>#include<algorithm>#include<string>#include<cstring>#include<cctype>struct cmp{bool operator() (const int a,const int b) const{return a>b;}};using namespace std;int main(){int n,m;while(cin>>n>>m,n||m){priority_queue<int,vector<int>,cmp > que;int tem;for(int i=0;i<n;i++){cin>>tem;que.push(tem);}que.push(m);while(que.size()>0){cout<<que.top();que.pop();if(!que.empty()) cout<<" ";}cout<<endl;}return 0;}

我只想做一个努力的人!加油!
0 0
原创粉丝点击