传送门

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

首先行数一定是$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. Servlet----------用servlet写一个“网站访问量统计“的小案例

    package cn.example; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.Ser ...

  2. 理解CopyOnWriteArrayList

    CopyOnWriteArrayList,顾名思义,Write的时候总是要Copy,也就是说对于任何可变的操作(add.set.remove)都是伴随复制这个动作的 A thread-safe var ...

  3. nodejs(二)child_process模块

    1.child_process是Node.js的一个十分重要的模块,通过它可以实现创建多进程,以利用多核计算资源. child_process模块提供了四个创建子进程的函数,分别是spawn,exec ...

  4. Spring使用AspectJ注解和XML配置实现AOP

    本文演示的是Spring中使用AspectJ注解和XML配置两种方式实现AOP 下面是使用AspectJ注解实现AOP的Java Project首先是位于classpath下的applicationC ...

  5. SQL实现交,并,差操作

    有的数据库不支持intersect,except,所以交集,和差集使用嵌套查询来做比较靠谱. a表和b表具有完全一样的结构 mysql> desc a; +-------+----------- ...

  6. css3写等腰三角形

    <style>            .test {                width: 0;                height: 0;                b ...

  7. dedecms用keyword标签调用含有某一关键词的文章

    前面我们探讨了调用{dede:likewords}为dedecms添加相关搜索词,如果要调用含有某一关键词的文章可以实现吗?比如ytkah的网站有很多文章中含有“微信”的词,那么想在网站首页.频道页. ...

  8. 使用浏览器,调试js代码

    1:创建html网页和js文件 <!doctype html> <html> <head> <meta charset="utf-8"&g ...

  9. latex 安装和使用

    1:下载 texlivewindows 版  http://tug.org/texlive/acquire-netinstall.html 2:双击exe文件进行安装,安装时选择 将路径添加到环境变量 ...

  10. SparkSQL UDF两种注册方式:udf() 和 register()

    调用sqlContext.udf.register() 此时注册的方法 只能在sql()中可见,对DataFrame API不可见 用法:sqlContext.udf.register("m ...