求问
查看原帖
求问
901076
HongKong_Dream0218楼主2023/3/11 21:11
#include<bits/stdc++.h>
#define int long long
using namespace std;
struct node
{
	int start,end,sum;
};
bool cmp(node x,node y)
{
	return x.start<y.start;
}
node a[1005],b[1005];
int f[1005];
signed main()
{
	int n;
	cin>>n;
	fo(i,1,n)
	{
		cin>>a[i].start>>a[i].end;
		a[i].sum=a[i].end-a[i].start+1;
	}
	sort(a+1,a+n+1,cmp);
	f[1]=a[1].sum;
	for(int i=1;i<=n;i++){
		for(int j=i-1;j>0;j--)
			if(a[i].start>a[j].end){
				f[i]=max(f[i],a[i].sum+f[j]);
			}
	}
	int ans=0;
	for(int i=1;i<=n;i++) ans=max(ans,f[i]);
	cout<<ans<<"\n";
	return 0;
}
2023/3/11 21:11
加载中...