UESTC 1599 wtmsb【优先队列+排序】
2017-07-11 09:17
295 查看
题目链接:UESTC 1599 wtmsb
题意:给你一组数,每一次取出两个最小的数,将这两个数的和放入这组数中,直到这组数只剩下一个,求最后剩下那个数的大小!
分析:比赛的时候首先我就看到这道题数据是200000,跑时100ms,我把思路捋了一遍,然后讲给旁边人听,一眼看过去,lfh说用哈夫曼树吧,然后找了个板子直接扔上去了,
结果显示出这样的操作:Restricted Function on test 1,从来没见过这个错误啊,百度找了一下,发现这个错误是它oj本身不支持某些函数,比如qsort这种排序操作,wc。。。有毒吧!然后气炸的我扔了一个sort排序,这回总应该过了吧,Time Limit Exceeded on test 1,好的吧,这个怕是有毒哦,后来稳了下yzx,他说优先队列+排序可过,我问:时间复杂度呢!然后,,,,他说不知道,随便搞搞就过了!这TM也行?看来要好好学数据结构了!
优先队列+排序的做法就是取出队头的两个数,然后把它们的和推入到这个队列中,然后优先队列会自动进行排序操作,所以你就能每一次取出两个最小的数,然后推入这两个数的和到队列中去,时间复杂度估计不会超过O(n)(毕竟只有100ms啊,大概也就只能跑1e7的数据)
下面给出AC代码:
题意:给你一组数,每一次取出两个最小的数,将这两个数的和放入这组数中,直到这组数只剩下一个,求最后剩下那个数的大小!
分析:比赛的时候首先我就看到这道题数据是200000,跑时100ms,我把思路捋了一遍,然后讲给旁边人听,一眼看过去,lfh说用哈夫曼树吧,然后找了个板子直接扔上去了,
结果显示出这样的操作:Restricted Function on test 1,从来没见过这个错误啊,百度找了一下,发现这个错误是它oj本身不支持某些函数,比如qsort这种排序操作,wc。。。有毒吧!然后气炸的我扔了一个sort排序,这回总应该过了吧,Time Limit Exceeded on test 1,好的吧,这个怕是有毒哦,后来稳了下yzx,他说优先队列+排序可过,我问:时间复杂度呢!然后,,,,他说不知道,随便搞搞就过了!这TM也行?看来要好好学数据结构了!
优先队列+排序的做法就是取出队头的两个数,然后把它们的和推入到这个队列中,然后优先队列会自动进行排序操作,所以你就能每一次取出两个最小的数,然后推入这两个数的和到队列中去,时间复杂度估计不会超过O(n)(毕竟只有100ms啊,大概也就只能跑1e7的数据)
下面给出AC代码:
#include <bits/stdc++.h> using namespace std; const int N=200020; int main() { int n; cin>>n; priority_queue<int, vector<int>, greater<int> >q; for(int i=0;i<n;i++) { int x; cin>>x; q.push(x); } int sum,ans=0; while(1) { int head1=q.top(); q.pop(); int head2=q.top(); q.pop(); sum=head1+head2; ans=ans+sum; if(q.empty()) break; q.push(sum); } cout<<ans<<endl; return 0; }
相关文章推荐
- UESTC1599-wtmsb-优先队列
- UESTC 1599 wtmsb
- 2017ecjtu-summer training #4 UESTC 1599
- UESTC 1599 wtmsb 优先队列(最小值优先)
- ecjtu-summer training #4 C UESTC - 1599 (优先队列)
- UESTC 1222 Sudoku
- 2016 UESTC Training for Data Structures B - 卿学姐与基本法 CDOJ 1325 线段树+离散化
- 2016 UESTC Training for Data Structures R - Japan CDOJ 383 树状数组 逆序对
- UESTC - 1041 Hug the princess(位运算&转换)好题
- 2016 UESTC Training for Dynamic Programming N - 柱爷与子序列 这题和N题有些相似之处、用了树状数组
- 2016 UESTC Traing Search Algorithm &String Problem N 简单的双向搜索
- 2016 UESTC Training for Search Algorithm & String A - Xiper的奇妙历险(1) 八皇后问题、dfs
- UESTC 838 母仪天下(树状数组)
- UESTC - 994 两个圆的公共面积
- UESTC 2016 Summer Training #10 Div.2(未完待续)
- 2016 Multi-University Training Contest 6 solutions BY UESTC
- HDU:1599 find the mincost route(floyd+无向图最小环)
- [UESTC 1431]不是图论
- Uestc381 - Knight and Rook
- Good Numbers UESTC - 832