社区讨论

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 条回复,欢迎继续交流。

正在加载回复...