DP(1)
来源:互联网 发布:切糕事件知乎 编辑:程序博客网 时间:2024/06/04 22:18
动态规划:从新手到专家
凑硬币
状态
d(i)表示凑够i元需要的最少硬币数量
状态方程
d(i)=min{ d(i-
vj )+1 },其中i-vj >=0,vj 表示第j个硬币的面值
#define INF 10000;int Min[100];int coins[] = { 1,3,5 };void find_coins(int value){ //初始化 for (int i = 1; i <= value; i++) Min[i] = INF; //d(i)=min{d(i-V_j)+1} i-V_j>=0, V_j表示第j个硬币的面值 for (int i = 1; i <= value; i++) for (int j = 0; j < 3; j++) if (coins[j] <= i && Min[i - coins[j]] + 1 < Min[i]) Min[i] = Min[i - coins[j]] + 1; //output cout << Min[value] << endl;}int main(){ int value; while (cin >> value) find_coins(value); system("pause"); return 0;}
后记
d(i)表示状态,但下标i不自觉的让人联系到循环体下标i。
我觉得这算一个坑吧。
考虑DP,出发点就是状态,状态方程在状态间跳转。
跟有限状态机一样。
这样来看,跟KMP算法还有些类似。
0 0
- DP[1]
- DP(1)
- DP算法入门1
- DP file *1
- dp泛做1
- 1poj1260(dp)
- 1poj1080(dp)
- 1poj1159(dp)
- poj1745 0-1DP
- dp学习笔记1
- [DP]筷子1/2
- Node:区间DP-1
- dp概括(1)
- 动态规划 DP 1
- dp 0-1
- 0-1背包 (DP)
- dp专题1,,hdu4568
- POJ_S1E02_Recursion&DP(1)
- imageview传tag参数--直接传即可
- App跨平台开发方案与取舍
- 验证码本地正常,服务器不正常(GD开启的情况下)
- UIPickerView控件中自定义显示的字体大小及样式
- win下pip安装和whl安装
- DP(1)
- LintCode 44. 最小子数组
- Hibernate之事务与并发控制
- 随机排列数组
- 【redis】跟着redis tutorial的基本学习
- PHP对二维数组按字段进行排序
- BZOJ-1922 大陆争霸 多限制、分层图最短路 (堆+dijkstra)
- PDO could not find dirver
- Eclipse下jQuery文件报错解决方案