64位整數乘法

2021-09-13 13:56:26 字數 744 閱讀 1842

64位整數乘法

求 a 乘 b 對 p 取模的值。

輸入格式

第一行輸入整數a,第二行輸入整數b,第三行輸入整數p。

輸出格式

輸出乙個整數,表示a*b mod p的值。

資料範圍

1≤a,b,p≤1018

看到這個資料範圍有點茫然 跑去查了下unsigned long long

最近做題的時候,經常遇到範圍是263,取模264的這種題目。遇到這種限制條件時就要想到用unsigned long long型別。

而ll的範圍是[-263,263-1],因為有符號的第63位表示「正負」而不表示數值

——unsigned long long型別與long long型別 - skyline - csdn部落格

於是發現unsigned long long都過不了…

一翻題解 原來可以用類似於快速冪的方法做

例如a=2,b=7

b=7=20+21+22

也是可以借助位運算的,只不過固定了底數為2,算答案時也不是乘,而是加

emmm…說不清楚看**吧

#include #include using namespace std;

int main()

printf("%lld\n",ans);

return 0;

}

位運算 64位整數乘法

64位整數乘法題目鏈結 題目大意 求 a aa 乘 b bb 對 p pp 取模的值,其中 1 leq aa a,bb b,pp p leq 10 1810 1018 輸入格式 第一行輸入整數a aa,第二行輸入整數b bb,第三行輸入整數ppp。輸出格式 輸出乙個整數,表示 a b a ba bm...

UPC 位運算64位整數乘法

時間限制 1 sec 記憶體限制 128 mb 提交 111 解決 56 提交 狀態 討論版 命題人 admin 題目描述 求 a 乘 b 對 p 取模的值,其中 1 a,b,p 10 18。輸入第一行a,第二行b,第三行p。輸出乙個整數,表示a b mod p的值。樣例輸入 2 39樣例輸出 6 ...

a b 64位整數乘法(快速冪 o(logn))

求 a 的 b 次方對 p 取模的值。輸入格式 三個整數 a,b,p 在同一行用空格隔開。輸出格式 輸出乙個整數,表示a b mod p的值。資料範圍 0 a,b,p 109 輸入樣例 3 2 7輸出樣例 2思路 快速冪就是將冪次b轉化成二進位制,然後按照二進位制,每次乘上基數 0或1 位權來算,這...