POJ The Fewest Coins

来源:互联网 发布:疯狂追星 知乎 编辑:程序博客网 时间:2024/04/30 20:30

转载请注明出处__谢谢! http://blog.csdn.net/huiyuan_ai?viewmode=contents by---huiyuan_ai第一次写这个东东,不好的地方还请提出,另求认识大神(ˇ^ˇ),目前只会水题- -#~~~!

题目链接:http://poj.org/problem?id=3260

这个题目,TLE的做法- -#~~~!完全背包+多重背包

#include <stdio.h>#define inf 1000000000int c[150],w[150];int min(int a,int b){return a<b?a:b;}int dp[11015];void zero(int x,int y){for(int j=10000;j>=x;j--)dp[j]=min(dp[j],dp[j-x]+y);}int main(){int i,j,n,s,k;while(~scanf("%d%d",&n,&s)){for(i=0;i<=10000;i++)dp[i]=inf;dp[0]=0;for(i=1;i<=n;i++)scanf("%d",&w[i]);for(i=1;i<=n;i++)scanf("%d",&c[i]);for(i=1;i<=n;i++)for(j=0;j<=c[i];j++)zero(w[i],1);for(i=1;i<=n;i++)for(j=10000-w[i];j>=0;j--)dp[j]=dp[j]<dp[j+w[i]]+1?dp[j]:dp[j+w[i]]+1;printf("%d\n",(dp[s]!=inf)?dp[s]:-1);}}


 

 

原创粉丝点击