3 条题解
-
0
`#include<bits/stdc++.h> using namespace std; const int N=1e5+5; struct Node{ int val,i,j; friend bool operator < ( Node a,Node b ){ return a.val>b.val; } };
priority_queue pq; int n,a[N],b[N]; map< pair<int,int>,bool >mp; int main(){ cin>>n; // for(int i=1;i<=n;i++){ // cin>>a[i].val>>a[i].i>>a[i].j; // } // sort(a+1,a+1+n); // for(int i=1;i<=n;i++){ // cout<<a[i].val<<" "<<a[i].i<<" "<<a[i].j<<"\n"; // } for(int i=1;i<=n;i++){ scanf("%d",&a[i]); } for(int i=1;i<=n;i++){ scanf("%d",&b[i]); } Node now; now.val=a[1]+b[1]; now.i=1;now.j=1; pq.push(now); for(int i=1;i<=n;i++){ now=pq.top(); pq.pop(); printf("%d ",now.val);
if( now.j!=n && mp[ make_pair(now.i,now.j+1) ]==0 ){ mp[ make_pair(now.i,now.j+1)]=1; Node tmp=now; tmp.j++; tmp.val=a[tmp.i]+b[tmp.j]; pq.push(tmp); } if( now.i!=n && mp[ make_pair(now.i+1,now.j) ]==0 ){ mp[make_pair(now.i+1,now.j)]=1; Node tmp=now; tmp.i++; tmp.val=a[tmp.i]+b[tmp.j]; pq.push(tmp); } } return 0;
}`
-
0
''' #include<bits/stdc++.h> using namespace std; const int N=1e5+5; struct Node{ int val,i,j; friend bool operator < ( Node a,Node b ){ return a.val>b.val; } };
priority_queue pq; int n,a[N],b[N]; map< pair<int,int>,bool >mp; int main(){ cin>>n; // for(int i=1;i<=n;i++){ // cin>>a[i].val>>a[i].i>>a[i].j; // } // sort(a+1,a+1+n); // for(int i=1;i<=n;i++){ // cout<<a[i].val<<" "<<a[i].i<<" "<<a[i].j<<"\n"; // } for(int i=1;i<=n;i++){ scanf("%d",&a[i]); } for(int i=1;i<=n;i++){ scanf("%d",&b[i]); } Node now; now.val=a[1]+b[1]; now.i=1;now.j=1; pq.push(now); for(int i=1;i<=n;i++){ now=pq.top(); pq.pop(); printf("%d ",now.val);
if( now.j!=n && mp[ make_pair(now.i,now.j+1) ]==0 ){ mp[ make_pair(now.i,now.j+1)]=1; Node tmp=now; tmp.j++; tmp.val=a[tmp.i]+b[tmp.j]; pq.push(tmp); } if( now.i!=n && mp[ make_pair(now.i+1,now.j) ]==0 ){ mp[make_pair(now.i+1,now.j)]=1; Node tmp=now; tmp.i++; tmp.val=a[tmp.i]+b[tmp.j]; pq.push(tmp); } } return 0;
} '''
-
0
#include<bits/stdc++.h> using namespace std; const int N=1e5+5; struct Node{ int val,i,j; friend bool operator < ( Node a,Node b ){ return a.val>b.val; } };
priority_queue pq; int n,a[N],b[N]; map< pair<int,int>,bool >mp; int main(){ cin>>n; // for(int i=1;i<=n;i++){ // cin>>a[i].val>>a[i].i>>a[i].j; // } // sort(a+1,a+1+n); // for(int i=1;i<=n;i++){ // cout<<a[i].val<<" "<<a[i].i<<" "<<a[i].j<<"\n"; // } for(int i=1;i<=n;i++){ scanf("%d",&a[i]); } for(int i=1;i<=n;i++){ scanf("%d",&b[i]); } Node now; now.val=a[1]+b[1]; now.i=1;now.j=1; pq.push(now); for(int i=1;i<=n;i++){ now=pq.top(); pq.pop(); printf("%d ",now.val);
if( now.j!=n && mp[ make_pair(now.i,now.j+1) ]==0 ){ mp[ make_pair(now.i,now.j+1)]=1; Node tmp=now; tmp.j++; tmp.val=a[tmp.i]+b[tmp.j]; pq.push(tmp); } if( now.i!=n && mp[ make_pair(now.i+1,now.j) ]==0 ){ mp[make_pair(now.i+1,now.j)]=1; Node tmp=now; tmp.i++; tmp.val=a[tmp.i]+b[tmp.j]; pq.push(tmp); } } return 0;
}
- 1
信息
- ID
- 308
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 9
- 标签
- 递交数
- 178
- 已通过
- 10
- 上传者