整数划分变形,由2^k组成。 整数划分中一个节约内存的技巧,平时我们使用dp[i][j]维护用不大于j的数组合成i的方案数,所以必须dp[i-j][j]->dp[i][j]。这样就需要二位,如果用一维dp[i-j]->dp[i]就会导致重复选取的情况。其原因在于dp[i-j]在计算的过程已经把大于j ...
分类:
其他好文 时间:
2017-10-27 13:30:19
阅读次数:
136
有1,4,9,16,25.....2^17这么多面值的硬币,问任意给定一个不大于300的正整数面额,用这些硬币来组成此面额总共有多少种组合种数比如10全14 + 6个 14+4+1+19+1求(1+x+x^2+x^3+x^4+x^5+x^6+x^7+x^8+x^9+x^10)(1+x^4+x^8)(...
分类:
其他好文 时间:
2015-09-22 23:26:05
阅读次数:
276
http://poj.org/problem?id=2229
思路:假设加数按从小到大的顺序。当n为奇数时,第一个数必须为1,此时f(n)=f(n-1);当n为偶数时,分两种情况讨论,若第一个数为1,则f(n)=f(n-1),若第一个数不为奇数,则所有数都不为奇数,提出一个公因子2出来,就是f(n/2),所以,f(n)=f(n-1)+f(n/2)
完整代码:
/*63...
分类:
其他好文 时间:
2014-11-14 17:50:27
阅读次数:
275