BZOJ 1677:[Usaco2005 Jan]Sumsets 求和

    xiaoxiao2021-03-25  182

    1677: [Usaco2005 Jan]Sumsets 求和

    Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 936  Solved: 544 [Submit][Status][Discuss]

    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).

    给出一个N(1N10^6),使用一些2的若干次幂的数相加来求之.问有多少种方法

    Input

       一个整数N.

    Output

    方法数.这个数可能很大,请输出其在十进制下的最后9位.

    Sample Input

    7

    Sample Output

    6 有以下六种方式 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

    没啥好说的。。。

    #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> #include<cstring> #include<algorithm> #include<iomanip> using namespace std; const int mod=1e9; int n; long long dp[1000010]; int main() { scanf("%d",&n);bool flag=1; dp[1]=1; for(int i=2;i<=n;i++) { if(flag)dp[i]=(dp[i-1]+dp[i/2])%mod; else dp[i]=dp[i-1]; flag^=1; } cout<<dp[n]; }

    转载请注明原文地址: https://ju.6miu.com/read-548.html

    最新回复(0)