大數階乘取模

2021-09-25 16:17:44 字數 1031 閱讀 1597

暴力

就是直接求階乘然後取模。。。

加乙個比較有用的特判:如果n>=p,那麼n的階乘的因子中一定有p,n的階乘膜p一定等於0

#include

#include

using namespace std;

long

long n,p;

intjs

(int n)

return ans;

}int

main()

else

return0;

}

正解:

分塊打表。。。

思路很簡單 但是不好想,就是每10000000個數打乙個表,這樣就可以把時間複雜度降到o(10000000),二打表不計入程式執行時間,完美而又輕鬆的a掉本題

比如要求29999999的階乘,就可以從20000000的階乘的基礎上開始計算

#include

#include

#include

#include

#include

using namespace std;

long

long n,p;

long

long now;

const

int a[

100]=;

//。。。

const

int mod=

1000000007

;int

main()

if(n<

10000000

) now=1;

else now=a[n/

10000000-1

];for(

int i=n/

10000000

*10000000+1

;i<=n;i++

) now=now*i%mod;

}else

cout

}

大數階乘取模

水了90分。如果不會正解的話,直接暴力拿分,無腦暴力可以拿到90分 正解分塊打表 就是直接求階乘然後取模。加乙個比較有用的特判 如果n p,那麼n的階乘的因子中一定有p,n的階乘膜p一定等於0 include include using namespace std long long n,p int...

np問題(大數階乘取模)

題目描述 lyk 喜歡研究一些比較困難的問題,比如 np 問題。這次它又遇到乙個棘手的 np 問題。問題是這個樣子的 有兩個數 n 和 p,求 n 的階乘對 p 取模後的結果。lyk 覺得所有 np 問題都是沒有多項式複雜度的演算法的,所以它打算求助即將要參加 noip的你,幫幫 lyk 吧!輸入格...

51Nod 大數階乘 大數取模

1057 n的階乘 基準時間限制 1 秒 空間限制 131072 kb 分值 0 難度 基礎題 輸入n求n的階乘的準確值。input 輸入n 1 n 10000 output 輸出n的階乘input示例 5output示例 120 include define max 1000000 5 using...