题解 P5975 【[CEOI2009]photo】
数据极水,建议加强数据。
题意:用尽可能较少的一边在
首先,可以发现
于是我们可以先将
设
转移有两种:
-
左右区间分开覆盖:
f_{i,j,k}=\min_{a=i}^{j-1}\{f_{i,a,k}+f_{a+1,j,k}\} -
先通过某种方式覆盖
y 值较小的所有点,再将y 值较大的点直接一次覆盖。f_{i,j,k}=\min_{a\in[0,k)\cup(r-l)\times y_{\max}\leq m}\{f_{i,j,a}+1\} 其中
l 、r 表示x\in[i,j],y\in(a,k] 的点中x 值所在区间。(r-l)\times y_{\max}\leq m 表示要求一次覆盖的点的所需矩形的面积不超过m 。
边界条件:
-
f_{i,i,k}=[y_i\leq k] -
f_{i,j,0}=0 理由:没有点时不需要矩形覆盖。
时间复杂度:
AC代码
ps:这题好像还有一种dfs转移的做法,跑得飞快。。。