HDU 5666 Segment —— 快速加 俄罗斯农民乘法
2017-11-26 20:36
316 查看
Segment
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 2132 Accepted Submission(s): 799
Problem Description
Silen
August does not like to talk with others.She like to find some interesting problems.
Today
she finds an interesting problem.She finds a segment x+y=q.The
segment intersect the axis and produce a delta.She links some line between (0,0)and
the node on the segment whose coordinate are integers.
Please
calculate how many nodes are in the delta and not on the segments,output answer mod P.
Input
First
line has a number,T,means testcase number.
Then,each
line has two integers q,P.
q is
a prime number,and 2≤q≤1018,1≤P≤1018,1≤T≤10.
Output
Output
1 number to each testcase,answer mod P.
Sample Input
1
2 107
Sample Output
0
俄罗斯乘法,用于计算两个数直接相乘爆longlong的情况,可以在数相乘时不断取模,和快速幂类似。
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <queue>
#include <stack>
#include <map>
#include <cmath>
#include <vector>
#define max_ 100010
#define inf 0x3f3f3f3f
#define ll long long
using namespace std;
ll n,m;
ll fadd(ll a,ll b)
{
ll ans=0;
while(b!=0)
{
if(b&1)
ans=(ans+a)%m;
b/=2;
a=(2*a)%m;
}
return ans%m;
}
int main(int argc, char const *argv[]) {
int t;
cin>>t;
while(t--)
{
cin>>n>>m;
printf("%lld\n",fadd((n-1)/2%m,(n-2)%m));
}
return 0;
}
相关文章推荐
- HDU 5666 Segment(快速乘法/快速幂改)
- hdu-5666 Segment(俄罗斯乘法or大数乘法取模)
- hdu 5666 Segment 俄罗斯乘法或者套大数板子
- 【HDU 5666 Segment】+ 俄罗斯乘法
- hdu 5666 Segment(快速乘)
- hdu 5666 Segment【思维+快速积】
- Hdu 5666 Segment【欧拉函数+技巧乘法】
- hdu 5666 Segment(简单整点计数题+快速乘)(bestcoder#80 1001)
- hdu 5666 Segment(快速积)
- hdoj 5666 Segment (大数取模)(俄罗斯乘法)
- HDU5666 Segment (俄罗斯乘法(快速积) / Java大数取模 / 大数乘法取模转换)
- hdu 5666 Segment(大整数乘法)
- HDU 5666 Segment (大数乘法取模)
- hdoj 5666 Segment(二进制优化乘法, gcd)
- hdu 5187 zhx's contest [ 找规律 + 快速幂 + 快速乘法 || Java ]
- hdu 5451 Best Solver 快速矩阵乘法 Fibonacci数列的循环节
- HDU 5768Lucky7(多校第四场)容斥+中国剩余定理(扩展欧几里德求逆元的)+快速乘法
- HDU 4565——So Easy!(矩阵快速幂乘法)
- hdu(5187):求漂亮的序列。快速幂的快速乘法实现
- hdu 2604 Queuing(矩阵快速幂乘法)