hdu 2082 多重背包简化版
来源:互联网 发布:便笺元数据损坏的原因 编辑:程序博客网 时间:2024/06/03 23:41
题意:
26个单词,他们的价值为1~26,现在给出他们的个数,求凑成价值50以下的单词有多少种凑法,单词无序。
解析:
dp[ i ][ j ] = ∑ dp[ i - 1 ] [ j - k * value[i] ]
代码:
#pragma comment(linker, "/STACK:1677721600")#include <map>#include <set>#include <cmath>#include <queue>#include <stack>#include <vector>#include <cstdio>#include <cstdlib>#include <cstring>#include <climits>#include <cassert>#include <iostream>#include <algorithm>#define pb push_back#define mp make_pair#define LL long long#define lson lo,mi,rt<<1#define rson mi+1,hi,rt<<1|1#define Min(a,b) ((a)<(b)?(a):(b))#define Max(a,b) ((a)>(b)?(a):(b))#define mem0(a) memset(a,0,sizeof(a))#define mem1(a) memset(a,-1,sizeof(a))#define mem(a,b) memset(a,b,sizeof(a))#define FIN freopen("in.txt", "r", stdin)#define FOUT freopen("out.txt", "w", stdout)using namespace std;const double eps = 1e-8;const double ee = exp(1.0);const int inf = 0x3f3f3f3f;const int maxn = 30 + 10;const int maxv = 20 * 26 + 10;const double pi = acos(-1.0);const LL iinf = 0x3f3f3f3f3f3f3f3f;int readT(){ char c; int ret = 0,flg = 0; while(c = getchar(), (c < '0' || c > '9') && c != '-'); if(c == '-') flg = 1; else ret = c ^ 48; while( c = getchar(), c >= '0' && c <= '9') ret = ret * 10 + (c ^ 48); return flg ? - ret : ret;}int value[maxn];int amount[maxn];int dp[maxn][maxv];int main(){#ifdef LOCAL FIN;#endif // LOCAL int ncase = readT(); while (ncase--) { for (int i = 1; i <= 26; i++) { value[i] = i; amount[i] = readT(); } mem0(dp); for (int i = 0; i <= 26; i++) { dp[i][0] = 1; } for (int i = 1; i <= 26; i++) { for (int j = 1; j <= 50; j++) { for (int k = 0; k <= amount[i]; k++) { if (j - k * value[i] >= 0) dp[i][j] += dp[i - 1][j - k * value[i]]; else break; } } } int ans = 0; for (int i = 1; i <= 50; i++) ans += dp[26][i]; printf("%d\n", ans); } return 0;}
0 0
- hdu 2082 多重背包简化版
- hdu 2082 找单词(多重背包)
- hdu 2191 多重背包
- HDU-1171 多重背包
- HDU-1059 多重背包
- HDU-2844 多重背包
- HDU-2191 多重背包
- 【多重背包】HDU 1171
- 【多重背包】HDU 1059
- hdu 2191 多重背包
- HDU 1059 多重背包
- HDU 1059 多重背包
- hdu 1059 多重背包
- hdu 3732 多重背包
- hdu 1171 多重背包
- hdu 2111 多重背包
- hdu 1171 多重背包
- hdu 2191 (多重背包)
- PowerPC PPC460-S MMU(三 Access Control)
- Android 混淆代码总结
- 数据库查询优化(使用union 和 union all 的区别)
- canny算子及滑动条的使用
- 如何用1块钱赚到1000块?斯坦福大学教你如何跳出定势思维!
- hdu 2082 多重背包简化版
- NYOJ 37 回文序列
- CodeForces 19D Points(线段树单点修改+离散化)
- javascript入门笔记(5)——window
- 创建SQL语句_面试
- 面向对象
- 移动端加密视频的授权播放
- (1)const的位置
- 在max下完全卸载nodejs