Codechef August Challenge 2018 : Modular GCD
一开始还手动拓欧找规律,发现好像玩不了。
然后想了想,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的更多相关文章
- Codechef August Challenge 2018 : Chef at the River
传送门 (要是没有tjm(Sakits)的帮忙,我还真不知道啥时候能做出来 结论是第一次带走尽可能少的动物,使未带走的动物不冲突,带走的这个数量就是最优解. 首先这个数量肯定是下界,更少的话连第一次都 ...
- Codechef August Challenge 2018 : Safe Partition
传送门 (虽然是A了但是不知道复杂度是不是正确的 考虑以某个位置为结尾的合法划分 先考虑min,带来的影响是限制了最小长度,预处理出这个最小长度后,这可以在处理到这个数时,把不能算的部分去掉(不满足m ...
- Codechef August Challenge 2018 : Interactive Matrix
传送门 首先整个矩阵可以被分为很多小矩阵,小矩阵内所有行的单调性是一样的,所有列的单调性是一样的. 考虑如何在这样一个小矩阵中找出答案.我的策略是每次取四个角中最大值和最小值的点,这样可以每次删掉一行 ...
- Codechef August Challenge 2018 : Lonely Cycles
传送门 几波树形dp就行了. #include<cstdio> #include<cstring> #include<algorithm> #define MN 5 ...
- Codechef August Challenge 2018 : Coordinate Compression
传送门 外边二分,里面拿线段树维护贪心就行了. #include<cstdio> #include<vector> #include<cstring> #inclu ...
- Codechef October Challenge 2018 游记
Codechef October Challenge 2018 游记 CHSERVE - Chef and Serves 题目大意: 乒乓球比赛中,双方每累计得两分就会交换一次发球权. 不过,大厨和小 ...
- Codechef September Challenge 2018 游记
Codechef September Challenge 2018 游记 Magician versus Chef 题目大意: 有一排\(n(n\le10^5)\)个格子,一开始硬币在第\(x\)个格 ...
- codechef February Challenge 2018 简要题解
比赛链接:https://www.codechef.com/FEB18,题面和提交记录是公开的,这里就不再贴了 Chef And His Characters 模拟题 Chef And The Pat ...
- Codechef STMINCUT S-T Mincut (CodeChef May Challenge 2018) kruskal
原文链接http://www.cnblogs.com/zhouzhendong/p/9010945.html 题目传送门 - Codechef STMINCUT 题意 在一个有边权的无向图中,我们定义 ...
随机推荐
- ORA-28000错误的原因及解决办法
当使用SQL*Plus登录时,Oracle数据库时提示“ORA-28000:帐号被锁定”. 导致出现改错误的原因是:在oracle database 11g中,默认在default概要文件中设置了“F ...
- Docker:容器的四种网络类型 [十三]
一.None类型 简介:不为容器配置任何网络功能,--net=none 1.创建容器 docker run -it --network none busubox:latest 2.功能测试 [root ...
- 查看linux的cpu信息
# 总核数 = 物理CPU个数 X 每颗物理CPU的核数 # 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数 # 查看物理CPU个数 cat /proc/cpuinfo| ...
- 第十节: EF的三种追踪实体状态变化方式(DBEntityEntry、ChangeTracker、Local)
一. 简介 我们在前面章节介绍EF基本增删改的时候,曾说过EF的SaveChanges()方法,会一次性的将所有的实体的状态变化统一提交到数据库,那么你是否想过EF的实体会有哪些状态变化呢?什么原因会 ...
- Regularity criteria for NSE 5: $u_3,\om_3$
In [Zhang, Zujin. Serrin-type regularity criterion for the Navier-Stokes equations involving one vel ...
- Hibernate 4.3.11 下问题的解决
2017.01.09 问题:hibernate.HibernateException: Access to DialectResolutionInfo cannot be null when 'hib ...
- Chrome firefox ie等浏览器空格 宽度不一样
用半角空格 或者全角空格 相当于半格中文字符的宽度, 相当于一个中文字符宽度. 注:在chrome中两个 占一个汉字的宽度;,而在IE.firefox中四个 才占一个汉字的宽度.
- 个人经验~ 利用5.7的sys库更好的排查问题
一 简介:今天我们讲讲如何利用5.7的sys新库进行问题的排查二 描述 1 Sys库所有的数据源来自:performance_schema和information_schema.目标是把perfo ...
- Stack的相关API
public class Stack<E> extends Vector<E> : Stack类代表后进先出(LIFO)堆栈的对象. 它扩展了类别Vector与五个操作,允许一 ...
- Django之分页
需要知道:每页多少条数据.一共多少条数据.一共需要多少页.每页从哪开始到哪结束 注意问题:1.用户输入页码为非数字. 2.用户输入页码超出页码范围 def books(request): try: ...