摘要: 题意:有四种硬币,1分,5分,10分,25分,分别有a,b,c,d种,给出一个n分钱,要求你求出组成n分钱最多需要的硬币数量,并且输出组成它的各种硬币的数量......学到的东西:这个题目我是用两种方法做的,一个是完全背包,一个是多重背包。做完这个题目,我对背包的理解可以说上了个层次......还有记录路径的方法,反过来求出各个硬币的数量,都是我以前做的题目没有涉及到的.......要求出各个硬币有多少种,只需要记录路径,在开一个数组统计p-path[p],为什么可以如此?很容易想到path[p]=p-v[i]如此,p-path[p]==p-(p-v[i])==v[i],而v[i]正好是硬币的 阅读全文
posted @ 2013-07-24 17:47 紫忆 阅读(2490) 评论(0) 推荐(0) 编辑
摘要: 这个题目要用到大数的加法,其他的,我没有感觉到有什么难想的......比较水的背包题,掠过.....#include#include#includeusing namespace std;int s[2000][2],dp[150],t[150][3];int main(){ int text; scanf("%d",&text); while(text--) { int n,m; scanf("%d %d",&n,&m); for(int i=1;i0) { s[cnt][0]=k*t[i][0]; s[cnt++][1]=k* 阅读全文
posted @ 2013-07-24 17:22 紫忆 阅读(1057) 评论(0) 推荐(0) 编辑