51 NOD 1383 整數分解為2的冪

2022-06-03 14:30:12 字數 383 閱讀 5969

設f[i]為i這個數的劃分方案,則:

1.i是奇數的時候,最前面只能放1,所以f[i] = f[i-1]

2.i是偶數的時候,最前面可以放1也可以不放1,而不放1的時候數列都是偶數所以 f[i] = f[i-1] + f[i>>1].

#include#define ll long long

using namespace std;

const int ha=1000000007;

const int maxn=1000005;

int f[maxn],n;

inline int add(int x,int y)

inline void dp()

int main()

51Nod 1383 整數分解為2的冪

任何正整數都能分解成2的冪,給定整數n,求n的此類劃分方法的數量!由於方案數量較大,輸出mod 1000000007的結果。比如n 7時,共有6種劃分方法。7 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 2 2 1 2 2 2 1 1 1 4 1 2 4 看到這題就是乙個遞推題,...

51nod 1383 整數分解為2的冪

畫畫,找規律。dp n 表示n的劃分方法。當n為奇數的時候,dp n dp n 1 n 1每種分解後邊都加上乙個1就是了。當n為偶數的時候,dp n dp n 1 dp n 2 n 1的每種分解都加乙個1,這是一種情況,因為n是偶數,還有把1合併成2,把2合併成4的情況,這時候多出的這部分分解後的最...

51nod 1383 整數分解為2的冪

1383 整數分解為2的冪 基準時間限制 1 秒 空間限制 131072 kb 分值 80 難度 5級演算法題 任何正整數都能分解成2的冪,給定整數n,求n的此類劃分方法的數量!由於方案數量較大,輸出mod 1000000007的結果。比如n 7時,共有6種劃分方法。7 1 1 1 1 1 1 1 ...