摘要: 题意:把1~n这n个数分成两个堆,使它们的和相等问:一共有多少种分法?我们其实可以把它变成另一个问题:把1~n个数,组成n*(n+1)/2的一半有多少种方法?(用一些数组成一个数有多少方法?)n*(n+1)/2是个奇数的话,就直接输出0dp[i]+=dp[i-j];dp[i]表示和为 i 拼成它的组合个数View Code 1 #include <stdio.h> 2 3 int main() 4 { 5 int n,i,j,sum; 6 long long dp[500]={0}; 7 scanf("%d",&n); 8 sum=n*(n+1)/2; 阅读全文
posted @ 2011-10-30 09:06 104_gogo 阅读(159) 评论(0) 推荐(0) 编辑