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的更多相关文章
随机推荐
- Win10该文件没有与之关联的应用来执行该操作...请在"默认应用设置"页面中创建关联
问题发现:一直使用的一款软件--火柴,这两天忽然发现通过ctrl + 回车快捷键无法进入到文件所在的目录中(之前几天印象中还可以使用该功能).后来测试又发现无法打开网易云音乐中下载的音乐而进入到该音乐 ...
- Keil uVision4的简单使用
1. 项目创建 打开安装好的Keil uVision4可以看到如下界面 选择New uVision Project来创建一个新项目 选择项目存放的位置并为项目文件命名 选择要进行模拟仿真的设备(此处以 ...
- jdk1.7扩容时,不论是否有链表,并发都可能出现循环链表
扩容时使用transfertransfer不同于put时的判断hash冲突,直接使用头插法,如果没有冲突,则next为null.如下:e.next = newTable[i];newTable[i] ...
- EntityFramework Core表名原理解析,让我来,揭开你神秘的面纱
前言 上一节我们针对最开始抛出的异常只是进行了浅尝辄止的解析,是不是有点意犹未尽的感觉,是的,我也有这种感觉,看到这里相信您和我会有一些疑惑,要是我们接下来通过注解.Fluent APi.DbSet分 ...
- cogs 2632. [HZOI 2016] 数列操作d
2632. [HZOI 2016] 数列操作d ★★★ 输入文件:segment.in 输出文件:segment.out 简单对比时间限制:3 s 内存限制:512 MB [题目描述] ...
- React Context 的用法
在React的官方文档中,Context被归类为高级部分(Advanced),属于React的高级API,但官方并不建议在稳定版的App中使用Context. The vast majority of ...
- Window下安装并使用InfluxDB可视化工具 —— InfluxDBStudio
下载 直接访问: https://github.com/CymaticLabs/InfluxDBStudio/releases/tag/v0.2.0-beta.1 创建or编辑InfluxDB 这个软 ...
- 系统升级更新,cocoaPods不可用的问题
1.在终端运行: $ sudo gem install cocoa pods 会出现以下错误: ERROR: While executing gem ... (Errno::EPERM) Opera ...
- item方法
class Person: def __init__(self, name, age): self.name = name self.age = age def __getitem__(self, i ...
- render()到底渲染的什么?
1.格式 render(request,"xx.html",{"xx": xx}) 2.本质 通过模板语言动态渲染字符串(HTML文件) 注意: 1.HTML文 ...