1504: ZZ的橱柜(长沙理工oj)
来源:互联网 发布:2017即将上映的网络剧 编辑:程序博客网 时间:2024/04/28 02:54
http://www.acmore.net/problem.php?id=1504
利用优先队列,转化成O(m)的复杂度。
#include <iostream>#include <stdio.h>#include <string>#include <string.h>#include <algorithm>#include <math.h>#include <fstream>#include <vector>#include <map>#include <queue>#include <stack>using namespace std ;const int maxn = 400005;int n,m;int a[maxn],b[maxn];struct node{ int i,j; int sum; void set(int ii,int jj,int s){ i = ii; j = jj; sum = s; } friend bool operator<(const node &a,const node &b){ return a.sum>b.sum; }};priority_queue<node>que;int sum[maxn];int main(){ //freopen("test.txt","r",stdin); //freopen("out.txt","w",stdout); while(~scanf("%d%d",&n,&m)){ memset(sum,0,sizeof(sum)); while(!que.empty()) que.pop(); for(int i = 0;i < n;i++) scanf("%d",a+i); for(int i = 0;i < n;i++) scanf("%d",b+i); sort(a,a+n); sort(b,b+n); node temp; for(int i = 0;i < n;i++){ temp.set(i,0,a[i]+b[0]); que.push(temp); } node x,y; /*while(!que.empty()){ printf("%d ",que.top().sum); que.pop(); }*/ for(int i = 0;i < m;i++){ x = que.top(); //printf("%d %d %d\n",x.i,x.j,x.sum); que.pop(); sum[i] = x.sum; y.set(x.i,x.j+1,a[x.i]+b[x.j+1]); que.push(y); } for(int i = 0;i < m;i++) printf("%d\n",sum[i]); } return 0 ;}
0 0
- 1504: ZZ的橱柜(长沙理工oj)
- 1504: ZZ的橱柜
- ZZ的橱柜
- ZZ的橱柜
- 多校联合(4) ZZ的橱柜
- 长沙理工oj 1484 多校联合 矩阵乘法
- Time(山东理工OJ)
- 哈理工OJ 1909 理工门外的树(思维题目)
- 二叉树的建立与遍历(山东理工OJ)
- 哈理工 OJ 2215 Angle(简单的思维题)
- 哈理工OJ 2214 Judge(简单的数学题)
- 哈理工OJ 1426 集训队的晚饭(DP)
- 哈理工OJ 1394 XianGe的游戏I(水题么?)
- 哈理工OJ 1333GG的关心(01背包)
- 一道优先队列的题...- 2013ACM多校联合(4)_NUN - ZZ的橱柜
- 橱柜选择的红宝书
- 哈理工 oj 2189 节点的连接
- 山东理工OJ 2278 商人的诀窍
- ZOJ(1649)Rescue
- hdu(4339)树状数组+二分查找
- PHP/EclipsePHP代码自动提示
- poj(2185) Milking Grid (很好的kmp题目)
- 【C解析之四】指针
- 1504: ZZ的橱柜(长沙理工oj)
- hdu (2852) KiKi's K-Number
- csust 1467: 数学(扩展欧几里得)
- zoj(2110)Tempter of the Bone(DFS+奇偶剪枝)
- hdu(4267)A Simple Problem with Integers(三维树状数组)
- Codeforces Round #117 (Div. 2) D. Common Divisors
- [USACO 1.5.3]特殊的质数肋骨
- easyui Create Async Tree
- ZOJ(1711)Sum It Up (DFS+剪枝+去重复)