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

    Sumsets

    Time Limit: 2000ms
    Memory Limit: 200000KB
    This problem will be judged on PKU. Original ID: 2229
    64-bit integer IO format: %lld      Java class name: Main
     
    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

    Source

     
    解题:背包。。。类比下就看出来了。。。
     1 /*
     2 @author: Lev
     3 @date:
     4 */
     5 #include <iostream>
     6 #include <cstdio>
     7 #include <cmath>
     8 #include <cstring>
     9 #include <string>
    10 #include <cstdlib>
    11 #include <algorithm>
    12 #include <map>
    13 #include <set>
    14 #include <queue>
    15 #include <climits>
    16 #include <deque>
    17 #include <sstream>
    18 #include <fstream>
    19 #include <bitset>
    20 #include <iomanip>
    21 #define LL long long
    22 #define INF 0x3f3f3f3f
    23 
    24 using namespace std;
    25 const int maxn = 1000010;
    26 int dp[maxn],c[25] = {1};
    27 int main(){
    28     int x;
    29     for(int i = 1; i < 25; ++i)
    30         c[i] = c[i-1]<<1;
    31     while(~scanf("%d",&x)){
    32         memset(dp,0,sizeof(dp));
    33         dp[0] = 1;
    34         for(int i = 0;c[i] <= x; ++i){
    35             for(int j = c[i]; j <= x; ++j)
    36             dp[j] = (dp[j] + dp[j-c[i]])%1000000000;
    37         }
    38         printf("%d
    ",dp[x]);
    39     }
    40     return 0;
    41 }
    View Code
  • 相关阅读:
    [转].NET委托:一个C#睡前故事
    有关睡觉的学问
    [转]电话号码规范化规则正则表达式
    验证邮件地址的正则表达式
    初学UML之用例图
    没有不可突破的系统……
    生成树协议Spanning Tree Protocol
    两种图片漂浮的代码
    转:静态路由实际应用
    Cisco 2600 NAT 配置 实例
  • 原文地址:https://www.cnblogs.com/crackpotisback/p/4321530.html
Copyright © 2011-2022 走看看