コイン拾い / Coin GHJ2023 · 2026-10-19 21:01:56 · 题解 由于走过一个格子时最多得到一枚硬币,并且走到该格子必然存在最少与最大获得金币数。那么所得到的金币数一定在一个区间里,可以用差分处理答案。 为得到该区间两端点,定义 f(i,j),g(i,j) 分别表示到达点 (i,j) 所得的最小及最大金币数。转移式如下: \begin{aligned} f(i,j) & = \min\{f(i-1,j),f(i,j-1)\}+p\\ g(i,j) & = \max\{g(i-1,j),g(i,j-1)\}+p \end{aligned} 其中只有当 (i,j) 处有硬币时 p=1,否则 p=0。 时间复杂度 O(N^2)。 代码与记录