```
//试试优化下
#include<iostream>
#include<algorithm>
#include<cstdio>
using namespace std;
int dp[3000111],n,sj;
int loc[3000111][2];
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
{
int x,y;
scanf("%d%d",&x,&y);
loc[x][0]=1;
loc[x][1]=y-x+1;
sj=max(sj,y);
}
sj++;
for(int i=1;i<=sj;i++)
{
dp[i]=max(dp[i],dp[i-1]);
if(loc[i][0]==1)
{
if(dp[i+loc[i][1]]<dp[i]+loc[i][1])
{
dp[i+loc[i][1]]=dp[i]+loc[i][1];
}
}
}
cout<<dp[sj]<<endl;
return 0;
}
```
by Gary_NotFound @ 2023-09-30 23:31:28
不开优化AC,开了全re;
把main里dp[f(1,i-1,a[i].l)]+a[i].v中二分左边界改成0会WA一个点
by 0X0002M @ 2023-09-30 23:33:55
@[Gary_NotFound](/user/654056) @[0X0002M](/user/943192)
感谢,已关
by ZYH_juruo @ 2023-10-01 14:34:05