題意:把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時,可以...