摘要: 题意: 对于从1到N (1 <= N <= 39) 的连续整数集合,能划分成两个子集合,且保证每个集合的数字和是相等的。举个例子,如果N=3, 对于{1,2,3}能划分成两个子集合,每个子集合的所有数字和是相等的:{3} 和 {1,2} 给出一个 N 值,问最多能划分成多少种等值的集合。分析:每个数字只用到一次,每种情况的存在数可以由之前的存在的数来递推得到,01背包的变形。#include<stdio.h>#include<string.h>#define clr(x)memset(x,0,sizeof(x))long long f[50000];int 阅读全文
posted @ 2012-08-20 21:17 'wind 阅读(956) 评论(3) 推荐(0) 编辑