Codeforces_338_D
http://codeforces.com/problemset/problem/338/D
中国剩余定理的应用,思路是确定可能符合的最小行和最小列,然后判断是否符合。若不符合则后面的(最小的倍数)也不会符合。
寻找最小行和最小列就用了非互质中国剩余定理模版。
#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
#define LL long long
using namespace std; LL n,m,k,a[] = {},b[]; LL gcd(LL a,LL b)
{
return b?gcd(b,a%b):a;
} LL e_gcd(LL a,LL b,LL &x,LL &y)
{
if(!b)
{
x = ;
y = ;
return a;
}
LL ans = e_gcd(b,a%b,x,y),temp = x;
x = y;
y = temp-a/b*y;
return ans;
} LL CRT(LL *a,LL *m) //方程x%m=a;
{
LL lcm=,X=m[],Y=a[];
for(int i=;i<=k;i++) lcm=lcm/gcd(lcm,m[i])*m[i];
for(int i=;i<=k;i++)
{
LL A=X,B=m[i],d,x,y,c=a[i]-Y;
d=e_gcd(A,B,x,y);
if(c%d)return -;
LL mod=m[i]/d;
LL K=((x*c/d)%mod+mod)%mod;
Y=X*K+Y;
X=X*m[i]/d;
}
if(Y==) return lcm;
return Y;
} int main()
{
scanf("%I64d%I64d%I64d",&n,&m,&k);
for(int i = ;i <= k;i++) scanf("%I64d",&b[i]);
LL x = CRT(a,b);
if(x > n || x < )
{
printf("NO\n");
return ;
}
for(int i = ;i <= k;i++) a[i] = -i;
LL y = CRT(a,b);
if(y+k- > m || y < )
{
printf("NO\n");
return ;
}
for(int i = ;i <= k;i++)
{
if(gcd(x,y+i-) != b[i])
{
printf("NO\n");
return ;
}
}
printf("YES\n");
return ;
}
Codeforces_338_D的更多相关文章
随机推荐
- 输入URI,按下回车发生了什么?
当我们输入URL,按下回车发生了什么? 这个题目很俗套- -但是是面试经常出现的题目了.今天听尼古拉斯•屌•大斌哥介绍关于从URI到浏览器呈现给我们页面发生了什么.感觉收获颇多.索性就翻阅了一些其他资 ...
- Arrays.asList() 导致的java.lang.UnsupportedOperationException异常
Arrays.asList() 只支持遍历和取值 不支持增删改 继承至AbstractList内部类
- iOS开发常见问题
1. 在 ViewController 中添加子视图时,导航栏遮挡添加的子视图 let bpView = BpView.init(frame: CGRect.init(x: , y: , width: ...
- 从头学pytorch(十八):GoogLeNet
GoogLeNet GoogLeNet和vgg分别是2014的ImageNet挑战赛的冠亚军.GoogLeNet则做了更加大胆的网络结构尝试,虽然深度只有22层,但大小却比AlexNet和VGG小很多 ...
- 修理牛棚 贪心 USACO
今天开始终于可以刷USACO的题啦 准备每一道都发一个题解 1010: 1.3.2 Barn Repair 修理牛棚 时间限制: 1 Sec 内存限制: 128 MB提交: 9 解决: 7[提交] ...
- 最短路Dijkstra算法模板
// // dijkstra妯℃澘.cpp // algorithm // // Created by david.xu on 2018/8/6. // Copyright 漏 2018骞?david ...
- 数字任意组合 - gcd
链接:https://www.nowcoder.com/acm/contest/160/A来源:牛客网 题目描述有一个计数器,计数器的初始值为0,每次操作你可以把计数器的值加上a1,a2,...,an ...
- 牛客暑期ACM多校 第七场
链接:https://www.nowcoder.com/acm/contest/145/C来源:牛客网 C .题目描述 A binary string s of length N = 2n is gi ...
- NetCore下的log4
https://www.cnblogs.com/zhangxiaoyong/p/9463791.html 这一篇也不错 .NET常用的日志组件有NLog.Log4net等,.NET CORE下微软也自 ...
- AVR单片机教程——串口发送
本文隶属于AVR单片机教程系列. 到目前为止,我们的开发板只能处理很小量的数据:读取几个引脚电平,输出几个LED,顶多用数码管显示一个两位数字.至于输入一个指令.输出一条调试信息,甚至用scanf ...