UVA 11137 - Ingenuous Cubrency
来源:互联网 发布:洗车哪个软件好 编辑:程序博客网 时间:2024/06/14 10:52
这道题想错了方向,一直纠结于背包运行过程中忽略了一些情况,比如:要选8这个物品,当体积是8的时候我选了一个,因为存在价值为1这样的物品,这就是一种情况,但是当容量是16的时候,因为是完全背包,我又要选一个8,也就是覆盖了前面的f[8],因此我怎样去记录最终组合的种数呢?比如我给的容量就是16:那么会有两种情况8×1+1×8,2×8;但实现起来却是很不容易;
换个思路:我们设f[i]表示组成i面值的种数,则f[j] = f[j] + f[j-w[i]];相当于如果当前值j>w[i]的话,我们就选这个面值,因为有面值一的存在,必成立,又多了f[j-w[i]]种情况。
#include<stdio.h>#include<string.h>#define MAXN 10000 + 10long long f[MAXN];int n, w[22];void solve(){ memset(f,0,sizeof(f)); f[0]= 1; for(int i = 1; i < 22; i ++) w[i] = i * i * i; for(int i = 1; i < 22; i ++) { for(int j = w[i]; j <= 10000; j ++) { f[j] += f[j-w[i]]; } }}int main(){ solve(); while(~scanf("%d",&n)) printf("%lld\n",f[n]); return 0;}
0 0
- uva 11137 Ingenuous Cubrency
- uva - 11137 - Ingenuous Cubrency
- UVA 11137 Ingenuous Cubrency
- Ingenuous Cubrency UVA 11137
- UVA 11137 Ingenuous Cubrency
- UVA 11137 Ingenuous Cubrency
- UVa 11137 - Ingenuous Cubrency
- uva 11137 Ingenuous Cubrency
- UVa 11137 - Ingenuous Cubrency
- UVA 11137 Ingenuous Cubrency
- UVa:11137 Ingenuous Cubrency
- UVA - 11137 Ingenuous Cubrency
- UVA 11137 - Ingenuous Cubrency
- uva 11137 Ingenuous Cubrency
- UVa 11137 - Ingenuous Cubrency
- 【UVA】11137-Ingenuous Cubrency
- UVA - 11137 Ingenuous Cubrency
- UVA - 11137 Ingenuous Cubrency
- UVA 10271 - Chopsticks
- 第一周项目3 时间程序
- UVA 10617 - Again Palindrome
- C++时间标准库时间time和系统时间的使用
- UVA 11081 - Strings
- UVA 11137 - Ingenuous Cubrency
- CSU Scientific Conference
- Linux监测日志调试利器tail命令详细使用
- g729源码分析-1-lpc分析
- UVA 567 - Risk
- UVA 10034 - Freckles
- UVA 10048 - Audiophobia
- UVA 10397 - Connect the Campus
- UVA 10369 - Arctic Network