传送门

一开始还手动拓欧找规律,发现好像玩不了。

然后想了想,A-B这个数比较小,枚举它的因子判断合不合法就行了。

需要特判A=B的情况。

#include<cstdio>
#include<algorithm>
#define ll long long
#define ld long double
using namespace std; ll a,b,n,c,t,d,A,B;
int i;
const int MOD=1e9+;
inline void MM(ll &a,ll M){while(a>=M)a-=M;}
inline ll cc(ll x,ll y,ll M){
x=x*y-(ll)(((ld)x*y+0.01)/M)*M;
return x<?x+M:x;
}
inline ll mi(ll x,ll y,ll M){
ll ans=;
x%=M;
while(y){
if (y&) ans=cc(ans,x,M);
y>>=;x=cc(x,x,M);
}
return ans;
}
inline bool ju(ll x){
return (mi(a,n,x)+mi(b,n,x))%x==;
}
inline void work(){
scanf("%lld%lld%lld",&a,&b,&n);
c=a-b;
if (c==){
printf("%d\n",(mi(a,n,MOD)+mi(b,n,MOD))%MOD);
return;
}
for (i=;1LL*i*i<=c;i++)
if (c%i==&&ju(c/i)){
printf("%lld\n",c/i%MOD);
return;
}
for (i--;i;i--)
if (c%i==&&ju(i)){
printf("%lld\n",i%MOD);
return;
}
}
int main(){
scanf("%lld",&t);
while(t--) work();
}

Codechef August Challenge 2018 : Modular GCD的更多相关文章

  1. Codechef August Challenge 2018 : Chef at the River

    传送门 (要是没有tjm(Sakits)的帮忙,我还真不知道啥时候能做出来 结论是第一次带走尽可能少的动物,使未带走的动物不冲突,带走的这个数量就是最优解. 首先这个数量肯定是下界,更少的话连第一次都 ...

  2. Codechef August Challenge 2018 : Safe Partition

    传送门 (虽然是A了但是不知道复杂度是不是正确的 考虑以某个位置为结尾的合法划分 先考虑min,带来的影响是限制了最小长度,预处理出这个最小长度后,这可以在处理到这个数时,把不能算的部分去掉(不满足m ...

  3. Codechef August Challenge 2018 : Interactive Matrix

    传送门 首先整个矩阵可以被分为很多小矩阵,小矩阵内所有行的单调性是一样的,所有列的单调性是一样的. 考虑如何在这样一个小矩阵中找出答案.我的策略是每次取四个角中最大值和最小值的点,这样可以每次删掉一行 ...

  4. Codechef August Challenge 2018 : Lonely Cycles

    传送门 几波树形dp就行了. #include<cstdio> #include<cstring> #include<algorithm> #define MN 5 ...

  5. Codechef August Challenge 2018 : Coordinate Compression

    传送门 外边二分,里面拿线段树维护贪心就行了. #include<cstdio> #include<vector> #include<cstring> #inclu ...

  6. Codechef October Challenge 2018 游记

    Codechef October Challenge 2018 游记 CHSERVE - Chef and Serves 题目大意: 乒乓球比赛中,双方每累计得两分就会交换一次发球权. 不过,大厨和小 ...

  7. Codechef September Challenge 2018 游记

    Codechef September Challenge 2018 游记 Magician versus Chef 题目大意: 有一排\(n(n\le10^5)\)个格子,一开始硬币在第\(x\)个格 ...

  8. codechef February Challenge 2018 简要题解

    比赛链接:https://www.codechef.com/FEB18,题面和提交记录是公开的,这里就不再贴了 Chef And His Characters 模拟题 Chef And The Pat ...

  9. Codechef STMINCUT S-T Mincut (CodeChef May Challenge 2018) kruskal

    原文链接http://www.cnblogs.com/zhouzhendong/p/9010945.html 题目传送门 - Codechef STMINCUT 题意 在一个有边权的无向图中,我们定义 ...

随机推荐

  1. MapReduce 概述

    定义 Hadoop MapReduce 是一个分布式运算程序的编程框架,用于轻松编写分布式应用程序,以可靠,容错的方式在大型集群(数千个节点)上并行处理大量数据(TB级别),是用户开发 “基于 Had ...

  2. SEO学习知识

    监控流量的工具 百度统计 CNZZ  51LA 谷歌分析工具 如何从平台借流量? 竞价(付费).SEO 关键词定位: 定位人:负责人 将公司的业务全部列出来 选词: 根据定位的关键词选择出我们需要优化 ...

  3. 【转载】C++ vector的用法

    http://www.cnblogs.com/Nonono-nw/p/3462183.html

  4. LaTeX 一个段落加边框

    \usepackage{framed} \begin{framed} 对这里加边框啊 \end{framed}

  5. About the Importance of Aim in Life

    Have an aim in life, or your energies will all be wasted.   ---R. Peters 人生应该树立目标,否则你的精力会白白浪费. ---彼得 ...

  6. Groovy 设计模式 -- 装饰器模式

    http://groovy-lang.org/design-patterns.html#_chain_of_responsibility_pattern 装饰器模式, 起到美化原始对象的作用. 一个被 ...

  7. SSH框架之Hibernate《一》

    hibernate的基础入门 一:hibernate和ORM的概念部分         1.1hibernate概述:             Hibernate框架是当今主流的Java持久层框架之一 ...

  8. ThetaSome_ThetaAll子查询

    基本语法 表达式 θ some(子查询) 表达式 θ all (子查询) 语法中,θ是比较运算符 <,>,>=,<=,=,<> 如果表达式的值至少与子查询的结果的某 ...

  9. PnP 问题方程怎么列?

    PnP 问题即 Perspective-n-Point . 有 P3P 方法,使用三个点对就能求解.但是先按照熟悉的方法,写一写.最后写 P3P 方法,P3P 方法还是比较晦涩的,不是无脑方法. 1. ...

  10. RT throttling分析【转】

    转自:https://blog.csdn.net/u012728256/article/details/72639612 Linux上调度策略为SCHED_FIFO的实时进程是根据优先级抢占运行的.当 ...