HDU 4704 Sum 費馬小定理 快速冪

2021-09-24 21:08:19 字數 633 閱讀 5519

題意:把n分成若干個數相加有幾種分法。

1、把n分成若干個數:類似排列組合問題,把n個數分成若干個數,在n個數中間插板,有n-1個空位,一共2^(n-1)種分法

2、降冪:題目中最後mod(10^9+7),10^9+7是素數。與費馬小定理相聯絡

前提:m是質數

化簡:費馬小引理:

所以:3、還需要用到快速模冪

#include#include#include#includeusing namespace std;

typedef unsigned long long ll;

const int modd=1e9+7;

// 快速模冪計算函式

ll powermod(ll a, ll n, ll m)

a *= a;

a %= m;

n >>= 1;

} return res;

} int main()

result=(result-1)%(modd-1); //2^n-1

printf("%lld\n",powermod(2,result,modd)); }

return 0;

}

hdu 4704 Sum(費馬小定理)

題意 求乙個正整數n拆分成1到n個正整數的和,有多少種拆法 3 2 1和3 1 2算2種不同的拆法 1 n 10 100000 數學不太行呀,還好隊友給力 題意轉換為求2 n 1 不過n好大 由費馬小定理,得2 10 9 6 10 9 7 1 2 0,設mod 10 9 7,則2 n 1 mod 2...

hdu 4704 sum(費馬小定理)

題意 給你乙個數n,求1 n之間的 x可以劃分不超過k個整數的和 的種類 的和 例如 n 4 s 1 3,s 2 5 通過前幾組資料 1 2 3 4 5 6 1 2 4 8 16 32 可以發現答案就是2 n 1 1000000007 2 n 1 1000000007 2 n 1 100000000...

hdu 4704 sum(費馬小定理 快速冪)

題意 這題意看了很久。s k 表示的是把n分成k個正整數的和,有多少種分法。例如 n 4時,s 1 1 4 s 2 3 1,3 3,1 2,2 s 3 3 1,1,2 1,2,1 2,1,1 s 4 1 1,1,1,1 s 1 s 2 s 3 s 4 1 3 3 1 8 當n 1,2,3,4時,可以...