CF1197E Culture Code
显然 D p \tt Dp Dp 肯定是不能依赖于体积的。我们考虑选择当前位置的方案。
容易发现每个点能选择的对象构成了一个 D A G \tt DAG DAG。
设 f ( i ) f(i) f(i) 表示选择了点 i i i 的最小剩余体积,显然 f ( i ) = − i n ( i ) + min j f ( j ) + o u t ( j ) f(i) = -in(i) + \min_{j} f(j) + out(j) f(i)=−in(i)+minjf(j)+out(j),后面的东西直接使用前缀维护即可。
对于方案数我们可以同样维护一个前缀和,但是其代表的是考虑了点 i i i 得到最终答案是 f ( i ) f(i) f(i) 的最小方案。
设 g ( i ) g(i) g(i) 表示最终最小值是 f ( i ) f(i) f(