codeforces 360 D - Remainders Game

D - Remainders Game

Description

Today Pari and Arya are playing a game called Remainders.

Pari chooses two positive integer x and k, and tells Arya k but not x.

Arya have to find the value . There are n ancient numbersc1,

c2, ..., cn and Pari has to tell Arya if Arya wants. Given k and

the ancient values, tell us if Arya has a winning strategy independent

of value of x or not. Formally, is it true that Arya can understand the

value for any positive integer x?

Note, that means the remainder of x after dividing it by y.

Input

The first line of the input contains two integers n and k

(1 ≤ n,  k ≤ 1 000 000) — the number of ancient integers and value

k that is chosen by Pari.The second line contains n integers c1, c2, 

..., cn (1 ≤ ci ≤ 1 000 000).

Output

Print "Yes" (without quotes) if Arya has a winning strategy independent

of value of x, or "No" (without quotes) otherwise.

Sample Input

Input

4 52 3 5 12

Output

Yes

Input

2 72 3

Output

No

题意:给定n,k,和n个ci。你可以知道x%ci,问是否能确定x%k.分析:根据中国剩余定理问题就相当于要确定 C 数组整体的最小公倍数 lcm(c) 是否是 K 的倍数,如果是,则能确定输出 yes,否则输出 no.
#include <iostream>
#include<cstdio>
#define LL long long
using namespace std;
int a;
int gcd(LL a,LL b)
{
    return b?gcd(b,a%b):a;
}
int main()
{
    LL n,k,lcm=1;
   scanf("%lld%lld", &n, &k);
     for(int i=0;i<n;i++)
     {
           scanf("%lld", &a);
          lcm = lcm / gcd(lcm, a) * a % k;
    }
    if(lcm%k==0)  printf("Yes\n");
    else      printf("No\n");
    return 0;
}

 
时间: 2025-01-13 23:39:52

codeforces 360 D - Remainders Game的相关文章

套题 codeforces 360

A题:Opponents 直接模拟 #include <bits/stdc++.h> using namespace std; char ch[200]; int main() { int n,k; while(~scanf("%d%d",&n,&k)) { int p=0,sta=1,first=1,ans; for(int i=0;i<k;i++) { sta=1; scanf("%s",ch); for(int i=0;i&l

codeforces 360 C - NP-Hard Problem

原题: Description Recently, Pari and Arya did some research about NP-Hard problems and they found the minimum vertex coverproblem very interesting. Suppose the graph G is given. Subset A of its vertices is called a vertex cover of this graph, if for ea

Codeforces Round #360 (Div. 2) D. Remainders Game(中国剩余定理)

D. Remainders Game Today Pari and Arya are playing a game called Remainders. Pari chooses two positive integer x and k, and tells Arya k but not x. Arya have to find the value . There are n ancient numbers c1, c2, ..., cn and Pari has to tell Arya  i

Codeforces Round #360 (Div. 2) D 数学推导 E dp

Codeforces Round #360 (Div. 2) A  == B  水,但记一下: 第 n 个长度为偶数的回文数是  n+reverse(n). C    dfs 01染色,水 #include<bits/stdc++.h> using namespace std; #pragma comment(linker, "/STACK:102400000,102400000") #define rep(i,a,b) for (int i=a; i<=b; ++i

Codeforces Round #360 (Div. 1)A (二分图&dfs染色)

题目链接:http://codeforces.com/problemset/problem/687/A 题意:给出一个n个点m条边的图,分别将每条边连接的两个点放到两个集合中,输出两个集合中的点,若不可能则输出-1: 思路:通过画图我们不难发现,图中没有出现长度为奇数的环则是可行的,反之则是不行的.那么现在我们只需判断有木有长度为偶数的环即可. 对于这点我们可以直接用dfs搜索+染色,对于当前标记为1的点,我们将其所有儿子标记为2, 对于当前标记为2的点,将其所有儿子标记为1,若出现某个节点的标

Educational Codeforces Round 5 E. Sum of Remainders (思维题)

题目链接:http://codeforces.com/problemset/problem/616/E 题意很简单就不说了. 因为n % x = n - n / x * x 所以答案就等于 n * m - (n/1*1 + n/2*2 ... n/m*m) 在根号n复杂度枚举x,注意一点当m>n时,后面一段加起来就等于0,就不用再枚举了. 中间一段x1 ~ x2 的n/x可能相等,所以相等的一段等差数列求和. 1 //#pragma comment(linker, "/STACK:1024

Codeforces Round #360 D

Remainders Game 题意:给你一个k,给你n个数ci,并且你知道x%ci的值(没有给出),问能否确定是否存在唯一的x%k 思路:由中国剩余定理可知道    (mi相当与题目给的ci,M是mi的乘积,Mi=M/mi,ti是Mi的逆元) 但是中国剩余定理要求mi互质,但是题目中给的ci是不一定互质的,但是可知列出同余方程组后,可以得最小正整数解为x,通解为x+p*M(M在中国剩余定理是mi的乘积,但是在这里是所有mi的LCM,其实在中国剩余定理里也是LCM),因为是求x%k是否有唯一解,

codeforces 616E. Sum of Remainders 数学

题目链接 给两个数n, m. 求n%1+n%2+.......+n%m的值. 首先, n%i = n-n/i*i, 那么原式转化为n*m-sigma(i:1 to m)(n/i*i). 然后我们可以发现  1/4 = 2/4 = 3/4 = 0, 4/4 = 5/4 = 6/4 = 7/4 = 1. 所以可以将这些结果分成很多块, 按块算结果. 注意计算过程中时刻避免爆longlong. #include <iostream> #include <vector> #include

Codeforces Round #360 E

The Values You Can Make 题意:给n个数,第一次在这n个数中选出一些子序列,使得子序列和为k,然后再从这些和为k的子序列为k的数中再选出一些子序列,求第二次选出来的这些子序列的和的可能的值为多少,并升序输出(可以一个都不选) 思路:二维01背包方案数+滚动数组优化. dp[i][j][k]表示当前有i个数,从这些数中选出和为j的子序列再选出和为k的子序列的方案数,若方案数不为0,说明可行 递推式为 这里给的是逆推的公式(即第i个状态是由哪些状态转移过来的)因为比较好写公式,