- 博客(9)
- 收藏
- 关注
原创 最长上升子序列(普通法)
若记录路径,使用数组g记录,g记录的是以i为结尾的前一个数字。其中数组f记录的是以i为结尾的最长子序列的个数。例如:输入3 1 2 1 8 5 6。
2024-03-22 16:16:43
133
1
原创 01背包问题
因为代码中用到的是i-1状态的f,若循环是正向循环,那么在i次循环中f的值已经被改变,已经被更新到i次循环的f值,所以使用倒序,能够保证在i次循环中,f的值更新用的是第i-1状态的值。若不选择第i件物品,则f[i][j]=f[i-1][j];若选择第i件物品,则f[i][j]=f[i][j-v[i]]+w[i]。例如:i=3 f[5]=max(f[j],f[j-v[3]]+w[3],若正序,那么f[f[j-v[3]]]在前面已经被更新过了。代码中使用的为二维数组,会将每一个选择或者不选择的值都记录下来。
2024-03-21 13:49:44
162
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人