当前位置: 代码迷 >> 综合 >> Atcoder Regular Contest 072 E Alice in Linear Land
  详细解决方案

Atcoder Regular Contest 072 E Alice in Linear Land

热度:51   发布时间:2024-01-11 18:55:19.0

题目大意

在最开始Alice离终点的距离为D,第i天,Alice会有一个行走距离a[i],如果当前距离s>abs(s-a[i]),那么s就更新为abs(s-a[i]),s变为0时到达终点。
先给出若干询问,每次询问一个位置x,问能否通过改变a[x]的值,来使得Alice经过n天后不能到达终点
1q,n105

题解

显然我们可以预处理出pre[i]表示经过前i天之后的s,那么一次询问x其实就相当于我们可以设置初始距离 s(0spre[x?1]) ,使得Alice不能到达终点
设suf[i]表示要使Alice从第i天开始到第n天不能到达终点的初始距离(第i天开始)的最小值。
考虑如何处理suf[i]
显然suf[n]=1
然后对于 1i<n
首先很显然的 suf[i]suf[i+1] ,因为如果这个不成立,那么suf[i+1]一定会更小
考虑a[i]与suf[i+1]的关系
如果a[i]/2下取整大于等于suf[i+1],那么suf[i]=suf[i+1],因为显然,如果这样的话,a[i]是没有影响的,而这样一定可以就是最小
suf[i]<a[i]abs(suf[i]-a[i]) suf[i+1]suf[i]=a[i]+suf[i+1]
Done

  相关解决方案