ENLACE :Eliminar Robots
No esperaba el autismo.
Considerando un hallazgo tolerable de que el esquema ilegal es difícil de calcular.
Incluso si se puede calcular, es casi n ^ 2.
Teniendo en cuenta que el lado izquierdo de dp afectará al lado derecho, considere primero el lado derecho de dp y luego el lado izquierdo.
En cuanto a dp, es natural que f [i] represente el número de soluciones con tantos puntos i ~ n.
Suponga que el primer punto a la derecha que no puede verse afectado es w. Luego hay una transición f [i] + = f [i + 1] + f [w].
Entonces, de izquierda a derecha, dp puede calcular todos los planes.
const ll MAXN=200010;
ll n,ans,top;
ll f[MAXN],g[MAXN],s[MAXN];
struct wy
{
ll x,y;
inline ll friend operator <(wy a,wy b){return a.x<b.x;}
}t[MAXN];
int main()
{
freopen("1.in","r",stdin);
get(n);
rep(1,n,i)
{
ll get(x);ll get(y);
t[i]=(wy){x,x+y-1};
}
sort(t+1,t+1+n);
g[n+1]=1;
fep(n,1,i)
{
f[i]=i;
while(top&&t[i].y>=t[s[top]].x)
{
f[i]=max(f[i],f[s[top]]);
--top;
}
s[++top]=i;
g[i]=(g[i+1]+g[f[i]+1])%mod;
}
putl(g[1]);
return 0;
}