HD Piggy-Bank完全背包

来源:互联网 发布:影视美术设计考研知乎 编辑:程序博客网 时间:2024/04/29 12:17
#include <stdio.h>#include <string.h>#define min(a,b) a<b? a:bint dp[1000005];int main(){    int t;    scanf("%d",&t);    while(t--)    {        memset(dp, 99898,sizeof(dp));  //注意初始化数组这里        dp[0]=0;//首先这里要是零        int e, f, n,w,c;        scanf("%d%d", &e, &f);        int v=f-e;        scanf("%d", &n);        while(n--)        {            scanf("%d%d", &w, &c);            for(int i = c; i<=v; i++)              dp[i]=min(dp[i], dp[i-c]+w);  //其实装不满时就没被放进来的        }        if(dp[v]!=dp[v+1])        printf("The minimum amount of money in the piggy-bank is %d.\n",dp[v]);        else        puts("This is impossible.");    }    return 0;}


这个博客里面说的很清楚点击打开链接

原创粉丝点击