求调
查看原帖
求调
418419
ko_no_lzx_da楼主2022/9/27 12:45
#include<iostream>
#include<cmath>
#include<map>
#include<cstring>
#include<string>
#include<queue>
#include<algorithm>
#include<vector>
#include<stack>
using namespace std;
struct node{
	int jq,cq;
}gnfj[100010],gjfj[10010];
int lqsum[100010],lqfj[100010];
int jlqsum[100010],jlqfj[100010];
int n,m1,m2;
bool cmp(node a,node b){
	return a.jq<b.jq;
}
int main(){
	cin >>n>>m1>>m2;
	for(int i=1;i<=m1;i++){
		cin >>gnfj[i].jq>>gnfj[i].cq;
	}
	for(int i=1;i<=m2;i++){
		cin >>gjfj[i].jq>>gjfj[i].cq;
	}
	sort(gjfj+1,gjfj+m2+1,cmp);
	sort(gnfj+1,gnfj+m1+1,cmp);
	int cnt=1;
	lqsum[1]=1;
	lqfj[1]=gnfj[1].cq;
	for(int i=2;i<=m1;i++){	
		int minn=0x7fffffff,minj;
		for(int j=1;j<=cnt;j++){
			if(lqfj[j]<minn&&gnfj[i].jq>minn){
				minn=lqfj[j];
				minj=j;
			}
		}
		if(minn==0x7fffffff){
			cnt++;
			lqfj[cnt]=gnfj[i].cq;
			lqsum[cnt]++;
		}else{
			lqfj[minj]=gnfj[i].cq;
			lqsum[minj]++;
		}
	}
	jlqsum[1]=1;
	cnt=1;
	jlqfj[1]=gjfj[1].cq;
	for(int i=2;i<=m2;i++){	
		int minn=0x7fffffff,minj;
		for(int j=1;j<=cnt;j++){
			if(jlqfj[j]<minn&&gjfj[i].jq>minn){
				minn=jlqfj[j];
				minj=j;
			}
		}
		if(minn==0x7fffffff){
			cnt++;
			jlqfj[cnt]=gjfj[i].cq;
			jlqsum[cnt]++;
		}else{
			jlqfj[minj]=gjfj[i].cq;
			jlqsum[minj]++;
		}
	}
	int gnn[100010],gjj[100010];
	for(int i=1;i<=n;i++){
		gnn[i]+=gnn[i-1]+lqsum[i];
	}
	for(int i=1;i<=n;i++){
		gjj[i]+=gjj[i-1]+jlqsum[i];
	}
	int maxx=-1;
	for(int i=1;i<=n;i++){
		maxx=max(maxx,gnn[i]+gjj[n-i]);
	}
	cout <<maxx;
	return 0;
}
2022/9/27 12:45
加载中...