hdoj1114_Piggy-Bank(dp)

来源:互联网 发布:ubuntu怎么格式化u盘 编辑:程序博客网 时间:2024/06/05 08:59
#include<cstdio>#include<iostream>#include<algorithm>#include<string.h>#include<utility>#include<vector>using namespace std;int dp[10010], coinw[10010], coinp[10010];void solve(int w, int n){    int max = 1 << 30;    fill(dp, dp + w + 1, max);    dp[0] = 0;    for (int i = 0; i < n; i++)    {        for (int j = coinw[i]; j <= w; j++)            dp[j] = min(dp[j], dp[j - coinw[i]] + coinp[i]);    }}int main(){    int t;    scanf("%d", &t);    for (int i = 0; i < t; i++)    {        int e, f;        scanf("%d %d", &e, &f);        int n;        scanf("%d", &n);        for (int j = 0; j < n; j++)        {            int p, w;            scanf("%d %d", &coinp[j], &coinw[j]);        }        solve(f - e, n);        if (dp[f - e] == (1 << 30))            printf("This is impossible.\n");        else            printf("The minimum amount of money in the piggy-bank is %d.\n", dp[f - e]);    }    return 0;}
0 0
原创粉丝点击