思路详解:
考虑 dpdpdp,设状态 fl,rf_{l, r}fl,r 表示覆盖区间 [l,r][l, r][l,r] 所需的最少的放点次数,显然,答案是:f1,nf_{1, n}f1,n。
边界:对于任意一组 (l,r)(l, r)(l,r),如果 max(al,ar)≥r−l+1\max(a_l, a_r) \ge r - l+ 1max(al,ar)≥r−l+1,那么 fl,r=1f_{l, r} = 1fl,r=1。同理,如果 j,kj, kj,k 满足:l≤j≤k≤rl \le j \le k \le rl≤j≤k≤r 且 j−aj+1≤lj - a_j + 1 \le lj−aj+1≤l 且 k+ak−1≥rk + a_k - 1 \ge rk+ak−1≥r,那么 fl,r=2f_{l, r} = 2fl,r=2。
转移:fl,r=min(fl,k+fk+1,r)f_{l, r} = \min(f_{l, k} + f_{k+ 1, r})fl,r=min(fl,k+fk+1,r),k∈[l,r)k \in [l, r)k∈[l,r)。
682

被折叠的 条评论
为什么被折叠?



