15pts求调 我不想爆零啊qnq
查看原帖
15pts求调 我不想爆零啊qnq
178699
Kowngx_qwq楼主2021/10/24 00:06
#include<bits/stdc++.h>
using namespace std;
const int maxm=100005;
const int maxn=100005;
typedef pair<int,int> p;

struct nodepl
{
	int a,b;
};
nodepl inpl[maxm],outpl[maxm];
int inbr[maxn],outbr[maxn];
priority_queue<p,vector<p> > q;
bool br[maxn];
int n,m1,m2,cnt=1;

void get_input()
{
	scanf("%d %d %d",&n,&m1,&m2);
	for(int i=1;i<=m1;i++)
	{
		scanf("%d %d",&inpl[i].a,&inpl[i].b);
	}
	for(int i=1;i<=m2;i++)
	{
		scanf("%d %d",&outpl[i].a,&outpl[i].b);
	}
}

bool cmp(nodepl a,nodepl b)
{
	return a.a<=b.a;
}

void init()
{
	sort(inpl+1,inpl+m1+1,cmp);
	sort(outpl+1,outpl+m2+1,cmp);
	memset(inbr,0,sizeof(inbr));
	memset(outbr,0,sizeof(outbr));
}

void greedy_br()
{
	memset(br,false,sizeof(br));
	for(int i=1;i<=m1;i++)
	{
		while(!q.empty()&&(-q.top().first)<=inpl[i].a)
		{
			br[q.top().second]=false;
			if(q.top().second<=cnt)
			{
				cnt=q.top().second;
			}
			q.pop();
		}
		q.push(p(-inpl[i].b,cnt));
		br[cnt]=true;
		inbr[i]=n+1-cnt;
		while(br[cnt])
		{
			cnt++;
		}
	}
	while(!q.empty())
	{
		q.pop();
	}
	memset(br,false,sizeof(br));
	cnt=1;
	for(int i=1;i<=m2;i++)
	{
		while(!q.empty()&&(-q.top().first)<=outpl[i].a)
		{
			br[q.top().second]=false;
			if(q.top().second<=cnt)
			{
				cnt=q.top().second;
			}
			q.pop();
		}
		q.push(p(-outpl[i].b,cnt));
		br[cnt]=true;
		outbr[i]=n+1-cnt;
		while(br[cnt])
		{
			cnt++;
		}
	}
}

int calc_ans()
{
	int inp[maxn],outp[maxn],res=0;
	memset(inp,0,sizeof(inp));
	memset(outp,0,sizeof(outp));
	for(int i=1;i<=m1;i++)
	{
		inp[inbr[i]]++;
	}
	for(int i=1;i<=m2;i++)
	{
		outp[outbr[i]]++;
	}
	for(int i=m1-1;i>0;i--)
	{
		inp[i]=inp[i]+inp[i+1];
	}
	for(int i=m2-1;i>0;i--)
	{
		outp[i]=outp[i]+outp[i+1];
	}
	for(int i=1;i<=n+1;i++)
	{
		res=max(res,inp[i]+outp[n+2-i]);
	}
	
	return res;
}
int main()
{
//	freopen("airport.in","r",stdin);
//	freopen("airport.out","w",stdout);
	get_input();
	init();
	greedy_br();
	printf("%d\n",calc_ans());
	
	return 0;
}

求助 CCF的三个样例全部通过了 交上去就只有15pts了。。。我想知道我哪里错了QAQ 我就只提交了两题 T3还是个O(Tn2^n)的暴力 T1是我唯一的希望了。。。qnq

2021/10/24 00:06
加载中...