zoukankan      html  css  js  c++  java
  • POJ-2229

    Sumsets
    Time Limit: 2000MS   Memory Limit: 200000K
    Total Submissions: 19599   Accepted: 7651

    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,求n有多少种由2的幂次之和组成的方案. 

    当n为奇数的时候,那么所求的和式中必有1,则dp[n]==dp[n-1];

    当n为偶数的时候,可以分两种情况:

    1.含有1,个数==dp[n-1];

    2.不含有1,这时每个分解因子都是偶数,将所有分解因子都除以二,所得的结果刚好是n/2的分解结果,并且一一对应,则个数为dp[n/2];

    AC代码:

     1 //#include<bits/stdc++.h>
     2 #include<iostream>
     3 #include<cstring>
     4 using namespace std;
     5 
     6 const long long MOD=1000000000;
     7 
     8 int dp[1000010];
     9 
    10 int main(){
    11     ios::sync_with_stdio(false);
    12     int n;
    13     while(cin>>n&&n){
    14         memset(dp,0,sizeof(dp));
    15         dp[1]=1;
    16         for(int i=2;i<=n;i++){
    17             if(i&1){
    18                 dp[i]=dp[i-1];
    19             }
    20             else{
    21                 dp[i]=(dp[i-1]+dp[i>>1])%MOD;
    22             }
    23         }
    24         cout<<dp[n]<<endl;
    25     }
    26     return 0;
    27 }
  • 相关阅读:
    BZOJ 1441: Min exgcd
    luogu 1876 开灯 约数+打表
    luogu 1414 又是毕业季II 约数相关
    BZOJ1968: [Ahoi2005]COMMON 约数研究 线性筛
    luogu 3441 [POI2006]MET-Subway 拓扑排序+思维
    Comet OJ
    CF990G GCD Counting 点分治+容斥+暴力
    CF873F Forbidden Indices 后缀自动机+水题
    CF293E Close Vertices 点分治+树状数组
    CF1101D GCD Counting 点分治+质因数分解
  • 原文地址:https://www.cnblogs.com/Kiven5197/p/7347899.html
Copyright © 2011-2022 走看看