题意:有$n$个矩形,第$i$个左下角为$(xl_i,yl_i)$,右上角为$(xh_i,yh_i)$。给出$k$,选出$k$个矩形使得他们的面积交最大。
题解:$O(n^2)$枚举面积交的上下边界,然后在这个边界里的矩形用左右边界搞区间覆盖即可。复杂度$O(n^3)$。
题意:有$n$种硬币,第$i$种面值为$v_i$。你有个机器,每天可以生产硬币,有以下限制:
- 每一天,每种硬币最多能生产一个;
- 对于第$i$种硬币,任意连续$d_i$天,必须有一天没有生产第$i$种硬币;
- 任意连续$k$天,必须存在一天什么硬币都不生产。
给出$m$,求出这$m$天能够生产的硬币的总价值。
题解:令$f(x)$表示连续$x$天生产但是最后一天机器关闭的最大价值,那么
- 当$x \le k$的话,$f(x)=\sum_{i=1}^{n}v_i(x-1-\lfloor \frac{x-1}{d_i} \rfloor)$
- 否则,$f(x)=\max_{1 \le i \le k} {f(x-i) + f(i)}$
考虑如何从$f(n-k),f(n-k+1),\dots,f(n+k)$算出$f(2n-k),f(2n-k+1),\dots,f(2n+k)$。
显然我们的$f(x)$可以变成$\max_{1 \le i \le x} {f(x-i) + f(i)}$,其中$x,x-i \in [n-k,n+k]$,于是可以$O(k^2)$搞出来。
复杂度$O(k^2 \log m)$。
题意:有一个$n \times m$个棋盘,有些位置已经被覆盖了。你需要用$1 \times k$或者$k \times 1$的骨牌覆盖剩下的位置,求方案数对$10^9+7$取模。
题解:有一维比较小,考虑逐格转移的数位dp。每个边界记录$2$种状态,表示有没有边出来。然后枚举每个位置应该放什么东西即可。