求助,奇怪的状态压缩,WA了#3
查看原帖
求助,奇怪的状态压缩,WA了#3
585805
MCRS_lizi楼主2022/3/21 21:37
#include<bits/stdc++.h>
using namespace std;
int n,dp[3000001],maxn;
struct sb
{
	int l,r,las,xh;
}a[1000001],b[1000001];
bool cmp1(sb u,sb v)
{
	return u.r<v.r||u.r==v.r&&u.l<v.l;
}
bool cmp2(sb u,sb v)
{
	return u.l<v.l;
}
int main()
{
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		cin>>a[i].l>>a[i].r;
	}
	sort(a+1,a+n+1,cmp1);
	for(int i=1;i<=n;i++)
	{
		a[i].xh=i;
		b[i]=a[i];
	}
	sort(b+1,b+n+1,cmp2);
	int q=0;
	for(int i=1;i<=n;i++)
	{
		while(a[q].r<b[i].l)
		{
			q++;
		}
		q--;
		a[b[i].xh].las=q;
	}
	for(int i=1;i<=n;i++)
	{
		dp[i]=max(dp[a[i].las]+a[i].r-a[i].l+1,dp[i-1]);
	}
//	for(int i=1;i<=n;i++)
//	{
//		cout<<a[i].xh<<" ";
//	}
//	cout<<endl;
	cout<<dp[n];
 	return 0;
}

答案是1994719,我输出的是999999,不知道为什么

2022/3/21 21:37
加载中...