64位整數乘法
求 a 乘 b 對 p 取模的值。
輸入格式
第一行輸入整數a,第二行輸入整數b,第三行輸入整數p。
輸出格式
輸出乙個整數,表示a*b mod p的值。
資料範圍
1≤a,b,p≤1018
看到這個資料範圍有點茫然 跑去查了下unsigned long long
最近做題的時候,經常遇到範圍是263,取模264的這種題目。遇到這種限制條件時就要想到用unsigned long long型別。——unsigned long long型別與long long型別 - skyline - csdn部落格而ll的範圍是[-263,263-1],因為有符號的第63位表示「正負」而不表示數值
於是發現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 位權來算,這...