传送门

简单的中国剩余定理练习。

首先行数一定是$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 &ltiostream>
#include &ltqueue>
#include &ltmap>
#include &ltcstring>
#include &ltstring>
#include &ltalgorithm>
#include &ltcmath>
#include &ltcstdlib>
#include &ltcstdio>
#include &ltiomanip>
#include &ltctime>
#include &ltbitset>
#include &ltset>
#include &ltvector>
#include &ltcomplex>
using namespace std;
#define ll long long
#define up(i,j,n)	for(ll i=j;i&lt=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&lt<50;
inline ll read(){
	char ch=getchar();ll x=0,f=1;
	while(ch>'9'||ch&lt'0'){if(ch=='-')f=-1;ch=getchar();}
	while(ch>='0'&&ch&lt='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&lt0)	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的更多相关文章

  1. Codeforces 338D GCD Table 中国剩余定理

    主题链接:点击打开链接 特定n*m矩阵,[i,j]分值为gcd(i,j) 给定一个k长的序列,问能否匹配上 矩阵的某一行的连续k个元素 思路: 我们要求出一个解(i,j) 使得 i<=n &am ...

  2. codeforces 338D GCD Table

    什么都不会只能学数论QAQ 英文原题不贴了 题意: 有一张N*M的表格,i行j列的元素是gcd(i,j)读入一个长度为k,元素大小不超过10^12的序列a[1..k],问这个序列是否在表格的某一行中出 ...

  3. 【CF#338D】GCD Table

    [题目描述] 有一张N,M<=10^12的表格,i行j列的元素是gcd(i,j) 读入一个长度不超过10^4,元素不超过10^12的序列a[1..k],问是否在某一行中出现过 [题解] 要保证g ...

  4. 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 ...

  5. 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 ...

  6. 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 ...

  7. 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 ...

  8. 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 ...

  9. CF582A GCD Table

    A. GCD Table time limit per test 2 seconds memory limit per test 256 megabytes input standard input ...

随机推荐

  1. codeforces 592B/C

    题目链接:http://codeforces.com/contest/592/problem/B B. The Monster and the Squirrel time limit per test ...

  2. Docker Hub Mirror

    什么是Docker Hub Mirror? 根据Docker的官方文档,Mirror的定义是: Such a registry is provided by a third-party hosting ...

  3. 2018/03/30 每日一个Linux命令 之 创建用户/密码

    感悟: 感觉每天学习下指令真的很不错,虽然感觉也没啥东西,但是真的用到了,马上就能想起来个大概,忘了详细的用法,就回来看看自己的博客. 话说今天GitHub上有个人 star 了我的项目,很开心,嘎嘎 ...

  4. 敌兵布阵---hud1166(线段树或者树状数组模板)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1166 线段树中对某一点的值进行改变: #include<iostream> #includ ...

  5. 浅析I/O处理过程与存储性能的关系

    浅析I/O处理过程与存储性能的关系 https://community.emc.com/docs/DOC-28653 性能”这个词可以说伴随着整个IT行业的发展,每次新的技术出现,从硬件到软件大多数情 ...

  6. 搭建本地离线yum仓库

    目录 前言 把rpm包下载到本地 配置本地yum仓库信息 生成repodata信息 检查以及使用 对本地仓库进行更新 参考资料 修改记录 环境:VMware-Workstation-12-Pro,Wi ...

  7. svn 常见问题记录

    One or more files are in a conflicted state 情景:A组员新增文件并提交,B组员更新出现如下图情况. 解决方案:直接拷贝到B组员工作区.

  8. 从 Zero 到 Hero ,一文掌握 Python

    译文:开源中国 www.oschina.net/translate/learning-python-from-zero-to-hero 第一个问题,什么是 Python ?根据 Python 之父 G ...

  9. [LeetCode] 844. Backspace String Compare_Easy tag: Stack **Two pointers

    Given two strings S and T, return if they are equal when both are typed into empty text editors. # m ...

  10. [LeetCode] 312. Burst Balloons_hard tag: 区间Dynamic Programming

    Given n balloons, indexed from 0 to n-1. Each balloon is painted with a number on it represented by ...