动态规划练习
DP练习
「已注销」
前oi选手。
重庆市南开中学高2020级毕业生。
重庆大学计算机系2020级学生。
QQ1954486214欢迎添加讨论~
展开
-
LeetCode279 完全平方数【暴力DP】
fif_ifi表示数字iii最小可以由fif_ifi个完全平方数组成,构造转移方程:fi=min{fi−k+1}f_i=\min\{f_{i-k}+1\}fi=min{fi−k+1}其中,kkk是完全平方数class Solution {public: static const int M = 1e2+5; static const int N = 1e4+5; static const int Inf = 1e9; int f[N]; int s[M]; inline in原创 2021-03-08 14:32:45 · 84 阅读 · 0 评论 -
LeetCode 787 K 站中转内最便宜的航班【暴力DP转移】
f(i,j)f(i,j)f(i,j)表示到达iii地时已经到达了第jjj个地方时的最短距离记i→i′i\rightarrow i'i→i′是某条边,于是存在转移方程:f(i′,j+1)=min{f(i,j)+val}f(i',j+1)=\min\{f(i,j)+val\}f(i′,j+1)=min{f(i,j)+val}然后暴力枚举i,ji,ji,j即可注意几个小细节1.枚举到i,ji,ji,j时,若当前f(i,j)f(i,j)f(i,j)无穷大,也即始终没有枚举到这个情况,那就不需要继续沿着边原创 2021-03-04 11:09:17 · 152 阅读 · 1 评论 -
LeetCode 474 一和零【01双重背包】
01双重背包定义f(i,j,k)f(i,j,k)f(i,j,k)表示在考虑第111个至第iii个物品后,且使用不超过jjj个0和kkk个1的条件下,能够选取的子集的最大数目。枚举所有状态,转移情况无非就是选取当前字符串与否,转移方程:f(i,j,k)=max(f(i−1,j,k),f(i−1,j−cnt[i][0],k−cnt[i][1]))f(i,j,k)=\max(f(i-1,j,k),f(i-1,j-cnt[i][0],k-cnt[i][1]))f(i,j,k)=max(f(i−1,j,k),原创 2021-03-02 15:03:22 · 136 阅读 · 0 评论