首页 > 代码库 > 2017-5-16-Train:喵哈哈村的魔法考试 Round #19 (Div.2)

2017-5-16-Train:喵哈哈村的魔法考试 Round #19 (Div.2)

A.喵哈哈村的魔力源泉(水题)

描述

喵哈哈村有一个魔法源泉,里面有无穷无尽的力量。

但是前提是你能答出这样一个问题:

给你a,b,p,让你输出a*b%p的值。

输入

本题包含若干组测试数据。第一行三个整数a,b,p。满足:0<=a,b,p<=1e9

输出

输出答案

样例输入1

1 2 52 3 5

样例输出1

21

Solve:

水题

Code:

技术分享
 1 #include <bits/stdc++.h> 2 using namespace std; 3 int main() 4 { 5     long long a , b , c; 6     while(~scanf("%lld%lld%lld" , &a , &b , &c)) 7     { 8         printf("%lld\n" , a * b % c); 9     }10 }
View Code

B.喵哈哈村的魔法源泉(快速加)

描述

喵哈哈村有一个魔法源泉,里面有无穷无尽的力量。

但是前提是你能答出这样一个问题:

给你a,b,p,让你输出a*b%p的值。

输入

本题包含若干组测试数据。第一行三个整数a,b,p。满足:0<=a,b,p<=1e18

输出

输出答案

样例输入1

10 1 7

样例输出1

3

Solve:

广义快速幂的快速加

Code:

技术分享
 1 #include <bits/stdc++.h> 2 using namespace std; 3 typedef long long LL; 4 LL QuickAdd(LL a , LL b , LL mod) 5 { 6     LL yaoyuan = 0; 7     while(b) 8     { 9         if(b & 1)10             yaoyuan = (yaoyuan + a) % mod;11         a = (a + a) % mod;12         b >>= 1;13     }14     return yaoyuan;15 }16 int main()17 {18     LL a , b , p;19     while(~scanf("%lld%lld%lld" , &a , &b , &p))20     {21         printf("%lld\n" , QuickAdd(a , b , p));22     }23 24 }
View Code

 

2017-5-16-Train:喵哈哈村的魔法考试 Round #19 (Div.2)