【HDOJ】1709 The Balance
2014-04-16 18:16
411 查看
母函数,指数可以为1也可以为-1,扩大指数加消减发现TLE,于是采用绝对值就过了。
#include <stdio.h> #include <string.h> #define MAXNUM 10001 int c1[MAXNUM], c2[MAXNUM]; int w[101]; int myabs(int x) { return x<0 ? -x:x; } int main() { int n, sum, tmp; int i, j, k; while (scanf("%d", &n) != EOF) { sum = 0; for (i=1; i<=n; ++i) { scanf("%d", &w[i]); sum += w[i]; } memset(c1, 0, sizeof(c1)); memset(c2, 0, sizeof(c2)); c1[0] = 1; c1[w[1]] = 1; tmp = w[1]; for (i=2; i<=n; ++i) { for (j=0; j<=tmp; ++j) for (k=0; k<=w[i]; k+=w[i]) { c2[k+j] += c1[j]; c2[myabs(k-j)] += c1[j]; } tmp += w[i]; for (j=0; j<=tmp; ++j) { c1[j] = c2[j]; c2[j] = 0; } } k = 0; for (i=1; i<=sum; ++i) { if (c1[i] == 0) c2[k++] = i; } printf("%d\n", k); for (i=0; i<k; ++i) if (i) printf(" %d", c2[i]); else printf("%d", c2[i]); if (k) printf("\n"); } return 0; }
相关文章推荐
- HDOJ-1709-The Balance 解题报告
- hdoj 1709 The Balance(母函数)
- 【母函数初学】The Balance hdoj 1709
- hdoj 1709 The Balance(母函数)
- HDOJ 题目1709 The Balance(母函数)
- HDOJ-1709 The Balance(母函数)
- HDoj-1709-The Balance-母函数
- HDOJ 1709-The Balance【模拟】
- hdu 1709——The Balance
- hdu 1709 The Balance
- HDU1709 The Balance【母函数】
- HDU1709_HDU 1709 The Balance(母函数/生成函数)
- HDOJ HDU 1709 The Balance ACM 1709 IN HDU
- 解题报告:HDU_1709 The Balance
- 【HDOJ】1356 The Balance
- HDU 1709 The Balance
- hdu 1709 The Balance
- hdu 1709 The Balance 正负背包(01背包)
- HDU-1709-The Balance 母函数
- hdu 1709 The Balance