ABC 158 F-Removing Robots dp pila monotónica

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;
}

Supongo que te gusta

Origin www.cnblogs.com/chdy/p/12687218.html
Recomendado
Clasificación