CF#338D. GCD Table
简单的中国剩余定理练习。
首先行数一定是$lcm$,然后只要确定最小的列数就能判定解合不合法了。
我们可以得到线性模方程组:
$y \equiv 0 \pmod{a_1}$
$y+1 \equiv 0 \pmod {a_2}$
$y+2 \equiv 0 \pmod {a_3}$
$...$
$y+n \equiv 0 \pmod {a_{n+1}}$
然后CRT搞出来一组解,暴力判判就OK了。
//CF338D
//by Cydiater
//2017.2.20
#include <iostream>
#include <queue>
#include <map>
#include <cstring>
#include <string>
#include <algorithm>
#include <cmath>
#include <cstdlib>
#include <cstdio>
#include <iomanip>
#include <ctime>
#include <bitset>
#include <set>
#include <vector>
#include <complex>
using namespace std;
#define ll long long
#define up(i,j,n) for(ll i=j;i<=n;i++)
#define down(i,j,n) for(ll i=j;i>=n;i--)
#define cmax(a,b) a=max(a,b)
#define cmin(a,b) a=min(a,b)
const ll MAXN=1e5+5;
const ll oo=1LL<<50;
inline ll read(){
char ch=getchar();ll x=0,f=1;
while(ch>'9'||ch<'0'){if(ch=='-')f=-1;ch=getchar();}
while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
return x*f;
}
ll N,M,K,m[MAXN],lcm=1,a[MAXN],a1,m1;
namespace solution{
ll gcd(ll a,ll b){return !b?a:gcd(b,a%b);}
void exgcd(ll a,ll b,ll &x,ll &y){
if(!b){x=1;y=0;return;}
exgcd(b,a%b,y,x);
y-=a/b*x;
}
void CRT(){
a1=a[1];m1=m[1];
up(i,2,K){
ll a2=a[i],m2=m[i],x,y,d=gcd(m1,m2);
if((a2-a1)%d){a1=oo;return;}
exgcd(m1,m2,x,y);
ll mod=m2/d;
x=((x*((a2-a1)/d)%mod+mod)%mod+mod)%mod;
a1+=x*m1;
m1=m1*m2/d;
a1=(a1+m1)%m1;
}
}
void Prepare(){
N=read();M=read();K=read();
up(i,1,K){
m[i]=read();a[i]=1-i;
lcm=lcm/gcd(lcm,m[i])*m[i];
}
}
void Solve(){
if(lcm>N)puts("NO");
else{
CRT();
if(a1+K-1>M||a1<0) puts("NO");
else{
if(a1==0)a1=lcm;
if(a1+K-1>M){
puts("NO");
return;
}
up(i,1,K)if(gcd(lcm,a1+i-1)!=m[i]){
puts("NO");
return;
}
puts("YES");
}
}
}
}
int main(){
//freopen("input.in","r",stdin);
using namespace solution;
Prepare();
Solve();
return 0;
}
CF#338D. GCD Table的更多相关文章
- Codeforces 338D GCD Table 中国剩余定理
主题链接:点击打开链接 特定n*m矩阵,[i,j]分值为gcd(i,j) 给定一个k长的序列,问能否匹配上 矩阵的某一行的连续k个元素 思路: 我们要求出一个解(i,j) 使得 i<=n &am ...
- codeforces 338D GCD Table
什么都不会只能学数论QAQ 英文原题不贴了 题意: 有一张N*M的表格,i行j列的元素是gcd(i,j)读入一个长度为k,元素大小不超过10^12的序列a[1..k],问这个序列是否在表格的某一行中出 ...
- 【CF#338D】GCD Table
[题目描述] 有一张N,M<=10^12的表格,i行j列的元素是gcd(i,j) 读入一个长度不超过10^4,元素不超过10^12的序列a[1..k],问是否在某一行中出现过 [题解] 要保证g ...
- Codeforces Round #323 (Div. 2) C.GCD Table
C. GCD Table The GCD table G of size n × n for an array of positive integers a of length n is define ...
- Codeforces Round #323 (Div. 1) A. GCD Table
A. GCD Table time limit per test 2 seconds memory limit per test 256 megabytes input standard input ...
- Codeforces Round #323 (Div. 2) C. GCD Table 暴力
C. GCD Table Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/583/problem/C ...
- SPOJ PGCD 4491. Primes in GCD Table && BZOJ 2820 YY的GCD (莫比乌斯反演)
4491. Primes in GCD Table Problem code: PGCD Johnny has created a table which encodes the results of ...
- Codeforces Round #323 (Div. 2) C. GCD Table map
题目链接:http://codeforces.com/contest/583/problem/C C. GCD Table time limit per test 2 seconds memory l ...
- CF582A GCD Table
A. GCD Table time limit per test 2 seconds memory limit per test 256 megabytes input standard input ...
随机推荐
- ubuntu查看隐藏文件夹
打开所要查看的文件目录,然后ctrl + h 快捷键可以显示隐藏文件 例如在/home目录下可以看到以下隐藏文件
- 1.3tf的varible\labelencoder
1.tf的varible变量 import tensorflow as tf #定义变量--这里是计数的变量 state=tf.Variable(0,name='counter') print (st ...
- POJ 1273 - Drainage Ditches - [最大流模板题] - [EK算法模板][Dinic算法模板 - 邻接表型]
题目链接:http://poj.org/problem?id=1273 Time Limit: 1000MS Memory Limit: 10000K Description Every time i ...
- Spring Cloud微服务开发笔记5——Ribbon负载均衡策略规则定制
上一篇文章单独介绍了Ribbon框架的使用,及其如何实现客户端对服务访问的负载均衡,但只是单独从Ribbon框架实现,没有涉及spring cloud.本文着力介绍Ribbon的负载均衡机制,下一篇文 ...
- tun笔记
https://www.kernel.org/doc/Documentation/networking/tuntap.txt 虚拟网卡 TUN/TAP 驱动程序设计原理 https://www.ibm ...
- 洛谷P3599 Koishi Loves Construction 构造
正解:构造 解题报告: 传送门! 这题俩问嘛,就分成两个问题港QwQ 就按顺序趴,先港第一问QwQ 首先要发现,n在膜n意义下就是0嘛 那作为前缀和的话显然它就只能放在第一个 然后再想下,发现,如果n ...
- struts2 错误:Dispatcher initialization failed java.lang.RuntimeException
严重: Dispatcher initialization failed java.lang.RuntimeException: java.lang.reflect.InvocationTargetE ...
- Freemarker简单用法
Freemarker 最简单的例子程序 freemarker-2.3.18.tar.gz http://cdnetworks-kr-1.dl.sourceforge.net/project/fre ...
- [py]django前台处理后端返回的各类数据
参考 要完成的任务 返回str 返回list 返回arr 前端遍历 关键字 if for语句处理str list dict - 遍历字典 for语句 {% for key, value in info ...
- Java调用本地命令
参考:http://blog.csdn.net/zhu_xun/article/details/19539513 http://www.cnblogs.com/kingcucumber/p/31801 ...