多语言展示
当前在线:1472今日阅读:23今日分享:25

usaco 2.3.4 Money Systems

大体意思就是给你无限量的多种币值,让你求一下这些比值一共有多少种方法能够组成总值N。
工具/原料
1

usaco官网

2

电脑,编译器

方法/步骤
1

本题是个完全背包问题,关于这个问题其实dd大神的背包九讲里面已经阐述得很清楚了。

3

注意题目中的种类数在c中int型是存不下的,最后一组数据很大。用unsigned long long即可。

4

以下是代码: #include#includeint main(){unsigned long long f[10001];int v,n,tmp;freopen('money.in','r',stdin);freopen('money.out','w',stdout);scanf('%d%d',&v,&n);memset(f,0,sizeof(unsigned long long)*10001);f[0]=1;int j;for(int i=1;i<=v;i++){scanf('%d',&tmp);for(j=tmp;j<=n;j++){f[j]+=f[j-tmp];}}printf('%lld\n',f[n]);return 0;}

注意事项

本篇文章所有内容,图片均为本人亲自撰写,截图所得,转载请表明出处。

推荐信息