題意:求乙個正整數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 ^ ((n - 1) % (10 ^ 9 + 6)) % mod,
而(n - 1) % (10 ^ 9 + 6) = ((n % (10 ^ 9 + 6) - 1) + (10 ^ 9 + 6)) % (10 ^ 9 + 6),
最後用快速冪求解。
#include #include using namespace std;
const int mod = 1000000000 + 7;
const int mom = 1000000000 + 6;
const int maxn = 100000 + 10;
char n[maxn];
int pow_mod(int a, int n)
int main()
return 0;
}
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 費馬小定理 快速冪
題意 把n分成若干個數相加有幾種分法。1 把n分成若干個數 類似排列組合問題,把n個數分成若干個數,在n個數中間插板,有n 1個空位,一共2 n 1 種分法 2 降冪 題目中最後mod 10 9 7 10 9 7是素數。與費馬小定理相聯絡 前提 m是質數 化簡 費馬小引理 所以 3 還需要用到快速模...
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時,可以...