【CDOJ 1329】卿学姐与魔法
2016-07-30 12:07
309 查看
http://acm.uestc.edu.cn/#/problem/show/1329
先把A[i]+B[0]拖进一个优先队列,然后每次取出最小值A[i]+B[k],同时把A[i]+B[k+1]扔进去,然后直到取出n个数。
再贴一份代码(哦,顺便这道题可以验证cin cout 和scanf printf的快慢~ 嗯,而且是关闭同步优化过的cin cout)
(换成关闭同步的cin cout在T11挂掉)
先把A[i]+B[0]拖进一个优先队列,然后每次取出最小值A[i]+B[k],同时把A[i]+B[k+1]扔进去,然后直到取出n个数。
#include <iostream> #include <algorithm> #include <cstdio> #include <cmath> #include <cstring> #include <queue> #include <stack> #include <map> #include <vector> #include <cstdlib> #include <string> #define PI acos((double)-1) #define E exp(double(1)) using namespace std; int a[100000],b[100000]; int c[100000]; int main (void) { int n; cin>>n; for(int i=1;i<=n;i++) scanf("%d",&a[i]); sort(a+1,a+n+1); for(int i=1;i<=n;i++) scanf("%d",&b[i]); sort(b+1,b+n+1); priority_queue<pair<int,int> >s; for(int i=1;i<=n;i++) s.push(make_pair(-(a[i]+b[1]),1)); for(int i=1;i<=n;i++) { pair<int,int> temp=s.top();s.pop(); c[i]=-temp.first; int k=temp.second; if(temp.second<n)s.push(make_pair(-(-temp.first-b[k]+b[k+1]),k+1)); } for(int i=1;i<=n;i++) printf("%d\n",c[i]); return 0; }
再贴一份代码(哦,顺便这道题可以验证cin cout 和scanf printf的快慢~ 嗯,而且是关闭同步优化过的cin cout)
(换成关闭同步的cin cout在T11挂掉)
#include<cstdio> #include<iostream> #include<cstring> #include<algorithm> #include<cmath> #include<queue> using namespace std; int n; typedef pair<int,int> pii; priority_queue<pii , vector<pii>, greater<pii> > s; #define maxn 100010 int a[maxn],b[maxn]; int ans[maxn]; int main() { // ios::sync_with_stdio(false); // cin>>n; scanf("%d",&n); for(int i=1;i<=n;i++)scanf("%d",&a[i]);//cin>>a[i]; for(int i=1;i<=n;i++)scanf("%d",&b[i]);//cin>>b[i]; sort(a+1,a+1+n); sort(b+1,b+1+n); for(int i=1;i<=n;i++)s.push(make_pair(a[i]+b[1],1)); int k = 0; for(int i=1;i<=n;i++) { ans[i] = s.top().first; k = s.top().second; s.pop(); if(k<n)s.push(make_pair(ans[i]-b[k]+b[k+1],k+1)); } for(int i=1;i<=n;i++)printf("%d\n",ans[i]);//cout<<ans[i]<<endl; return 0; }
相关文章推荐
- CDOJ 1329 卿学姐与魔法(优先队列)
- cdoj 1329 卿学姐与魔法 优先队列
- 2016 UESTC Training for Data Structures D - 卿学姐与魔法 CDOJ 1329 堆
- uestc--1329 卿学姐与魔法(优先队列)
- UESTCoj - 1329 卿学姐与魔法 (优先队列
- 【cdoj 1349】卿学姐与魔法 (优先队列)
- 【UESTC 1329 卿学姐与魔法】+ 优先队列
- UESTC 1329 卿学姐与魔法
- 【CDOJ 1350】卿学姐失恋了Ⅱ
- 2016 UESTC Training for Data Structures M - 卿学姐失恋了Ⅱ CDOJ 1350 汉诺塔 模拟
- cdoj1344卿学姐种美丽的花
- 【CDOJ 1344】卿学姐种美丽的花
- CDOJ 1324 卿学姐与公主 分块法
- CDOJ 1325 卿学姐与基本法(离散化+线段树)
- CDOJ 1292 卿学姐种花 暴力 分块 线段树
- CDOJ 1328 卿学姐与诡异村庄(并查集判断矛盾)
- 2016 UESTC Training for Data Structures D - 卿学姐与魔法 优先队列、构造
- 2016 UESTC Training for Data Structures O - 卿学姐种美丽的花 CDOJ 1344 线段树/树状数组
- cdoj 1324 卿学姐与公主 线段树裸题
- 【cdoj 1325】卿学姐与基本法 离散化+线段树