HDOJ 1114 Piggy-Bank
来源:互联网 发布:ubuntu安装qq拼音 编辑:程序博客网 时间:2024/06/04 23:20
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1114
以下有三种做法,自己在网上找的。
自己开始学习背包问题,感觉这几种做的方法都好,
题解:想求重量为W(k)时的最小价值V(k),给定的重量选择为weight[],对应的价值分别为value[];
则若知道W(k)的前一步W(k-1)时所对应的价值,
由于W(k-1)+weight[i] = W(k),只要遍历value[]数组,得
出V(k)的最小值即可,,,,,,,,,,,,,,,,
dp[k] = 0…………k = 0;
dp[k] = min(value[j] + dp[k - weight[j]])…………k >=weight[j];
其中,1=< j <= n,若dp[k - weight[j]]) =-1,表示它是无穷大,重量不能达到
#include <stdio.h>
#include <string.h>
struct coin
{
};
coin cc[501];
int dp[10001];
int main()
{