社区讨论
64pts,MLE四个点,求条闭关
P1631序列合并参与者 2已保存回复 2
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 2 条
- 当前快照
- 1 份
- 快照标识符
- @mli1g9hg
- 此快照首次捕获于
- 2026/02/11 21:01 4 周前
- 此快照最后确认于
- 2026/02/13 21:30 4 周前
MLE了4个测试点
CPP#include<bits/stdc++.h>
using namespace std;
int n,tot,minn=1000010,mn=1000010;
int a[100010],b[100010];
struct node{
int x=0,id=0;
};
bool operator>(node x,node y){return x.x>y.x;}
priority_queue<node,vector<node>,greater<node> >p;
priority_queue<int,vector<int>,greater<int> >pq;
int main(){
cin>>n;
for(int i=1;i<=n;i++){
int y;
cin>>y;
mn=min(mn,y);
node k;
k.id=0;k.x=y;
p.push(k);
}
for(int i=1;i<=n;i++){
int y;
cin>>y;
minn=min(minn,y);
node k;
k.id=1;k.x=y;
p.push(k);
}
int tot=0,tot2=0;
for(int i=1;i<=n+1000;i++){
node sum=p.top();
// cout<<sum.x<<' ';
if(sum.id==0)a[++tot]=sum.x;
else b[++tot2]=sum.x;
p.pop();
}
//cout<<'\n';
//cout<<tot<<" "<<tot2<<'\n';
if(tot2==0)b[++tot2]=mn,tot--;
if(tot==0)a[++tot]=minn,tot2--;
for(int i=1;i<=tot;i++){
for(int j=1;j<=tot2;j++){
// if(i!=j)
pq.push(a[i]+b[j]);
}
}
// cout<<pq.size();
for(int i=1;i<=n;i++){
int r=pq.top();
cout<<r<<' ';
pq.pop();
}
return 0;
}
回复
共 2 条回复,欢迎继续交流。
正在加载回复...