devc++能正确运行,提交洛谷莫名RE
查看原帖
devc++能正确运行,提交洛谷莫名RE
891817
Haiiao楼主2024/9/28 18:10
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+5;
int n,m1,m2,ans,ans1[N],ans2[N];
struct node{
	int begin;
	int end;
}a[N],b[N];
bool comp(node a,node b){
	return a.begin<b.begin;
}
priority_queue<pair<int,int>,vector<pair<int,int> >,greater<pair<int,int> > >lq;
priority_queue<int, vector<int>, greater<int> > wq; // 空闲廊桥队列
int check(node fei[],int m,int ans0[]){
	while(!lq.empty()) lq.pop();
	while(!wq.empty()) wq.pop();
	for(int i=1; i<=n;i++) wq.push(i);
	for(int i=1;i<=m;i++){
		while(!lq.empty()&&fei[i].begin>=lq.top().first){
			wq.push(lq.top().second);
			lq.pop();
		}
		if(!wq.empty()){
			int dest = wq.top();//当前可先用的廊桥序号 
    		wq.pop();
    		ans0[dest]++;
			lq.push(make_pair(fei[i].end,dest));
		}
	}
	for(int i=1;i<=n;i++) ans0[i]=ans0[i-1]+ans0[i];
}
int main(){
	ios::sync_with_stdio(false);
	cin>>n>>m1>>m2;
	for(int i=1;i<=m1;i++) cin>>a[i].begin>>a[i].end;
	for(int i=1;i<=m2;i++) cin>>b[i].begin>>b[i].end;
	sort(a+1,a+m1+1,comp);
	sort(b+1,b+m2+1,comp);
	check(a,m1,ans1);
	check(b,m2,ans2);
	for(int i=0;i<=n;i++){
		ans=max((ans1[i]+ans2[n-i]),ans);
	}
	cout<<ans;
	return 0;
} 
2024/9/28 18:10
加载中...