比如模數是1e15這種,相乘的時候爆ll了,但是又不想用大數,咋辦呢?
longlong ksc(long
long a, long
long b, long
long
mod)
return
res;
}
《演算法競賽高階指南》
聽說很穩? a∗
bmod
p=a∗
b−⌊a
∗bp⌋
∗p'>a∗bmodp=a∗b−⌊a∗bp⌋∗p
a∗bmodp=a∗b−⌊a∗bp⌋∗p
用long double來計算⌊a∗
bp⌋'>⌊a∗bp⌋
⌊a∗bp⌋,誤差很小,因為long double的特性是存不下就捨棄低位,再把它轉成long long。直接用long long來計算。long long爆掉了會讓符號位出錯,但是小於2^63的位是不會掛的,這正好符合我們的需求。
ll mul(ll a,ll b,ll p)ll mul(ll x, ll y)
ll mul(ll a,ll b,ll p)
acm 數的長度
時間限制 3000 ms 記憶體限制 65535 kb 難度 1 描述 n!階乘是乙個非常大的數,大家都知道計算公式是n n n 1 2 1.現在你的任務是計算出n!的位數有多少 十進位制 輸入 首行輸入n,表示有多少組測試資料 n 10 隨後n行每行輸入一組測試資料 n 0 n 1000000 輸...
ACM 奇怪的回文數
問題描述 回文 是指正讀反讀都能讀通的句子,它是古今中外都有的一種修辭方式和文字遊戲,如 我為人人,人人為我 等。在數學中也有這樣一類數字有這樣的特徵,稱為回文數 palindrome number 設a是一任意自然數。若將a的各位數字反向排列所得自然數b與a相等,則稱a為一回文數。例如123432...
棋盤分割 維數較大的動態規劃
一 問題描述 將乙個 的棋盤進行如下分割 將原棋盤割下一塊矩形棋盤並使剩下部分也是矩形,再將剩下的部分繼續如此分割,這樣割了 n 1 次後,連同最後剩下的矩形棋盤共有n塊矩形棋盤。每次切割都只能沿著棋盤格仔的邊進行 原棋盤上每一格有乙個分值 小於100的非負整數 一塊矩形棋盤的總分為其所含各格分值之...