POJ 2229 Sumsets】的更多相关文章

http://poj.org/problem?id=2229 题意很简单就是给你一个数n,然后选2的整数幂之和去组成这个数.问你不同方案数之和是多少? n很大,所以输出后9位即可. dp[i] 表示组成i的不同方案数,那么 dp[1]=1;dp[2]=2; if(i%2) dp[i]=dp[i-1] ;  i如果是奇数,那么只能在i-1的每个方案数前面加上1得到i,所以方案数相等. else dp[i]=dp[i-1]+dp[i/2] ;  i如果是偶数,一种可能是i有两个1,在i-1的每个方案…
Sumsets Time Limit: 2000MS   Memory Limit: 200000K Total Submissions: 11892   Accepted: 4782 Description Farmer John commanded his cows to search for different sets of numbers that sum to a given number. The cows use only numbers that are an integer…
Sumsets Time Limit : 4000/2000ms (Java/Other)   Memory Limit : 400000/200000K (Java/Other) Total Submission(s) : 4   Accepted Submission(s) : 3 Problem Description Farmer John commanded his cows to search for different sets of numbers that sum to a g…
Sumsets Description Farmer John commanded his cows to search for different sets of numbers that sum to a given number. The cows use only numbers that are an integer power of 2. Here are the possible sets of numbers that sum to 7: 1) 1+1+1+1+1+1+1 2)…
题意:给定一个整数N (1<= N <= 1000000),求出以 N为和 的式子有多少个,式子中的加数只能有2的幂次方组成 如5 : 1+1+1+1+1.1+1+1+2.1+2+2.1+4,共有5个 思路:当N为奇数时,N的式子中都必有1,故知只需在N-1的式子中都+1就可以,即d[N] = d[N-1] 当N为偶数时,N的式子可以分为,有1 或者 没1:有1的式子,必有2个1,那么可以由N-2的式子加上两个1: 没有1的式子,把式子中的加数都除以2,故可以由N/2的式子求得. AC代码:…
Description Farmer John commanded his cows to search . Here are the possible sets of numbers that sum to : ) ++++++ ) +++++ ) ++++ ) +++ ) +++ ) ++ Help FJ count all possible representations <= N <= ,,). Input A single line with a single integer, N.…
传送门 https://www.cnblogs.com/violet-acmer/p/9852294.html 题意: 将一个数N分解为2的幂之和共有几种分法? 题解: 定义dp[ i ]为数 i 的分解方案数. 初始化dp[0] = 2 ^ 0 = 1;. 状态转移方程为: for i : 1 to N 若 i 为偶数,则dp[ i ] = dp[ i / 2] + dp[i – 1] ; 否则dp[i] = dp[ i – 1]; 对状态转移方程的理解: 打个表先~~~~ i i 的分解方案…
题意:把n拆分为2的幂相加的形式,问有多少种拆分方法. 分析:dp,任何dp一定要注意各个状态来源不能有重复情况.根据奇偶分两种情况,如果n是奇数则与n-1的情况相同.如果n是偶数则还可以分为两种情况,有1和没有1.这样分可以保证两种情况没有重复,对于有1的情况可以直接拆出两个1(拆一个也行,但变成奇数之后一定会拆另一个),然后变为n-2的情况.对于没有1的情况可以直接将其转化为n/2.因为n拆分出所有的数字都是2的倍数.只需要将每种拆分结果中的数字都除以2就会与n/2的一种拆分相对应.由于只要…
discuss 看到有人讲完全背包可以过, 假如我自己做的话, 也只能想到完全背包了 思路: 1. 当 n 为奇数时, f[n] = f[n-1], 因为只需在所有的序列前添加一个 1 即可, 所有的序列同时延迟 1 位, 不会出现重复 若是这个 1 和其他的1组成 2 而不是放在首位, 怎么办? 不会这样, 因为这个序列肯定已经存在了 证明, 假设sum(s1) = 2*k, s1内部某个1加1得到 s2, 则 sum(s2) = 2*k+1, s2 的首位仍然肯定是1, 那么 s2 也可以通…
这是一道意想不到的规律题............或许是我比较菜,找不到把. Description Farmer John commanded his cows to search for different sets of numbers that sum to a given number. The cows use only numbers that are an integer power of 2. Here are the possible sets of numbers that…