zoukankan      html  css  js  c++  java
  • poj 2229 Sumsets (DP)

    http://poj.org/problem?id=2229

    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

    思路很简单直接看代码:分奇数偶数

    #include<iostream>
    #include<cstring>
    #include<cstdlib>
    using namespace std;
    const int MAXN=1000001;
    const int M=1000000000;
    int dp[MAXN];
    int main()
    {
    	int N;
    	while(cin>>N){
    		dp[0]=dp[1]=1;
    		for(int i=2;i<=N;i++){
    			if( i&1 ) dp[i]=dp[i-1];
    			else dp[i]=(dp[i-2]+dp[i>>1])%M;
    		}
    		cout<<dp[N]<<endl;
    	}
    	return 0;
    }



  • 相关阅读:
    a 超链接标签
    select(下拉标签和textarea(文本框)
    input标签
    input 标签
    div 标签
    body 标签
    STL__网上资料
    STL_iterator返回值
    STL_算法_中使用的函数对象
    STL_std::iterator
  • 原文地址:https://www.cnblogs.com/pangblog/p/3294066.html
Copyright © 2011-2022 走看看