poj 2229 Sumsets 【动态规划】

简介: 点击打开题目 Sumsets Time Limit: 2000MS   Memory Limit: 200000K Total Submissions: 13291   Accepted: 5324 Description Far...

点击打开题目

Sumsets
Time Limit: 2000MS   Memory Limit: 200000K
Total Submissions: 13291   Accepted: 5324

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) 1+1+1+1+1+2 
3) 1+1+1+2+2 
4) 1+1+1+4 
5) 1+2+2+2 
6) 1+2+4 

Help FJ count all possible representations for a given integer N (1 <= N <= 1,000,000). 

Input

A single line with a single integer, N.

Output

The number of ways to represent N as the indicated sum. Due to the potential huge size of this number, print only last 9 digits (in base 10 representation).

Sample Input

7

Sample Output

6
题目翻译:给出一个数字n,给出一个集合{1,2,4,8,16,32,64。。。。},求n有多少种不同的由集合内的数字的加和情况。

解题思路:本以为是母函数,但是在网上搜了一下结果发现是递推,可以有前面推出后面的结果,原因是和2的指数关系有关。

#include<cstdio>
int dp[1000000+5]={0,1,2,2},i,n;
int main(){
    while(scanf("%d",&n)==1){
        for(i=4;i<=n+1;i+=2){
            dp[i-1]=dp[i-2];
            dp[i]=(dp[i-1]+dp[i>>1])%1000000000;
        }
        printf("%d\n",dp[n]);
    }
    return 0;
}

目录
相关文章
|
容器
POJ 3640 Conformity
POJ 3640 Conformity
60 0
POJ 1012 Joseph
Joseph Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 53862   Accepted: 20551 Description The Joseph's problem is notoriously known.
845 0
POJ 1804
题目:http://poj.org/problem?id=1804 大意:给你一串数字,排序。求出最少的交换次数  \ 我用归并做的 #include #include using namespace std; int aa[500010],bb[500010]; long lon...
703 0
|
机器学习/深度学习
POJ 2487 Stamps
Description Background Everybody hates Raymond. He’s the largest stamp collector on planet earth and because of that he always makes fun of all the others at the stamp collector parties.
1069 0
POJ 2262 Goldbach&#39;s Conjecture
Problem Description In 1742, Christian Goldbach, a German amateur mathematician, sent a letter to Leonhard Euler in which he made the foll...
1013 0
|
消息中间件 人工智能 JavaScript
|
机器学习/深度学习
|
SDN
poj 2886 Who Gets the Most Candies?
点击打开poj 2886 思路: 求因子数+单点更新 分析: 1 题目的意思是有n个人构成一个环,刚开始是第k个人先出来。每个人有一个名字和数值A,如果A为正数,那么下一个出去的人是他左边的第A个人,如果是负数那么出去的将是右边的第A个人 2 这么我们要注意一下,因为n个人是围城一圈,那么左边就是顺时针方向,右边就是逆时针方向 3 那么我们就可以来推没一次出去的人的在剩下中是第几个。
787 0
poj 1456 Supermarket
点击打开链接poj 1456 思路: 贪心+并查集 分析: 1 题目的意思是给定n个物品的利润和出售的最后时间,求最大的利润 2 比较明显的贪心问题,按照利润排序,假设当前是第i个物品,那么利润为pi出售的时间为di,那么假设di还没有物品销售那么肯定先销售第i个物品,否则找di~1这些时间里面是否有没有销售物品 3 如果按照2的思路做法最坏的情况是O(n^2),但是数据比较弱可以过。
814 0