65分求助
查看原帖
65分求助
521283
wangif424楼主2022/9/25 22:40
#include<bits/stdc++.h>
using namespace std;
#define int long long
int const l=1e6+10;
int gw[l],gn[l]//国外国内 
,ans;
priority_queue<int,vector<int>,greater<int> > nul;//空位置 
int n,m1,m2;
struct p{
	int s,e,i;
	int operator<(p b)const{
		return e>b.e;
	}
}p1[l],p2[l];
bool cmp(p a,p b){
	return a.s<b.s;
}
priority_queue<p> q;//廊桥内 
signed main(){
	cin >> n >> m1 >> m2;
	for(int i=1;i<=m1;i++)nul.push(i);
	for(int i=1;i<=m1;i++)cin >> p1[i].s >> p1[i].e;
	sort(p1+1,p1+m1+1,cmp);
	for(int i=1;i<=m1;i++){
		while((!q.empty())&&q.top().e<=p1[i].s){
			nul.push( q.top().i );
			q.pop();
		}
		p1[i].i=nul.top();
		gn[p1[i].i]++;
		nul.pop();
		q.push(p1[i]);
	}
	while(!nul.empty())nul.pop();
	while(!q.empty())q.pop();
	for(int i=1;i<=m1;i++)nul.push(i);
	for(int i=1;i<=m2;i++)cin >> p2[i].s >> p2[i].e;
	sort(p2+1,p2+m1+1,cmp);
	for(int i=1;i<=m2;i++){
		while((!q.empty())&&q.top().e<=p2[i].s){
			nul.push( q.top().i );
			q.pop();
		}
//		cout << " " << nul.top() << " \n";
		p2[i].i=nul.top();
		gw[p2[i].i]++;
		nul.pop();
		q.push(p2[i]);
	}
	for(int i=1;i<=n;i++){
		gn[i]+=gn[i-1];
		gw[i]+=gw[i-1];
	}
/*	for(int i=1;i<=n;i++)cout << gn[i] << " ";
	cout << endl;
	for(int i=1;i<=n;i++)cout << gw[i] << " ";
*/
	for(int i=0;i<=n;i++){
		ans=max(gn[i]+gw[n-i],ans);
	}
	cout << ans;
	return 0;
}

WA了55个,RE了11

2022/9/25 22:40
加载中...