Codeforces Round #360 (Div. 2) -- D. Remainders Game (中国剩余定理)
来源:互联网 发布:网络名人周小平 编辑:程序博客网 时间:2024/04/29 12:37
Today Pari and Arya are playing a game called Remainders.
Pari chooses two positive integer x andk, and tells Aryak but notx. Arya have to find the value. There aren ancient numbers c1, c2, ..., cn and Pari has to tell Arya if Arya wants. Givenk and the ancient values, tell us if Arya has a winning strategy independent of value ofx or not. Formally, is it true that Arya can understand the value for any positive integerx?
Note, that means the remainder ofx after dividing it by y.
The first line of the input contains two integers n andk (1 ≤ n, k ≤ 1 000 000) — the number of ancient integers and valuek that is chosen by Pari.
The second line contains n integers c1, c2, ..., cn (1 ≤ ci ≤ 1 000 000).
Print "Yes" (without quotes) if Arya has a winning strategy independent of value ofx, or "No" (without quotes) otherwise.
4 52 3 5 12
Yes
2 72 3
No
In the first sample, Arya can understand because5 is one of the ancient numbers.
In the second sample, Arya can't be sure what is. For example1 and 7 have the same remainders after dividing by2 and3, but they differ in remainders after dividing by7.
重新修正下这篇博客!因学长的教训,重新思考了这个问题!
大体题意:
告诉你k 但不告诉你x 并且告诉你n个ci来,你也知道x%ci,想让你求出x mod k来!问是否有唯一解!
思路:
反证法,假设解不唯一,有x1,x2,那么x1,x2满足:
x1 % ci == x2 % ci 并且x1 % k != x2 % k,所以 (x1 - x2) % ci == 0 ,(x1-x2) % k != 0
并且lcm(c1,c2,,,,cn) % ci == 0
,所以lcm % (x1-x2) == 0.
且 (x1-x2) % k != 0;
所以lcm % k != 0
所以命题: 如果解不唯一,那么lcm % k != 0
逆否命题为: 若lcm % k == 0 那么 解唯一!
所以只需要判断lcm是否k 的整数倍,
也就是说这个问题可以转换为:
是否存在x使得 x是c1,c2,c3,,,cn,k的整数倍!
是的话就是yes,否则就是no!
#include<cstdio>#include<cstring>#include<algorithm>using namespace std;typedef long long ll;ll gcd(ll a,ll b){ return !b ? a : gcd(b,a%b);}ll lcm(ll a,ll b){ return a*b/gcd(a,b);}int main(){// printf("%d\n",gcd(6,13)); int n; ll k; scanf("%d%I64d",&n,&k); ll ans = 1; bool ok = false; for (int i = 0; i < n; ++i){ ll x; scanf("%I64d",&x); if (ans) ans = lcm(ans,x) % k; if (ans == 0)ok=true; } if (ok)printf("Yes\n"); else printf("No\n"); return 0;}
- Codeforces Round #360 (Div. 2) -- D. Remainders Game (中国剩余定理)
- Codeforces Round #360 (Div. 2) D. Remainders Game(中国剩余定理)
- Codeforces Round #360 (Div. 1) B. Remainders Game(中国剩余定理)
- Codeforces Round #360 (Div. 2) D. Remainders Game(数学)
- cf #360 div2 D-Remainders Game(中国剩余定理)
- cf----D - Remainders Game(中国剩余定理)
- CodeForces 687B - Remainders Game(中国剩余定理)
- Codeforces Round #360 (Div. 2) D. Remainders Game
- Codeforces Round #360 (Div. 2) D. Remainders Game
- [Codeforces688D]Remainders Game(扩展中国剩余定理)
- Codeforces 687B - Remainders Game (剩余定理)
- Codeforces Round #360 (Div. 1)B - Remainders Game
- cf 687B Remainders Game (剩余定理)
- CodeForces 688DRemainders Game(中国剩余定理)
- codeforces 338D GCD Table (扩展中国剩余定理)
- Codeforces-688D-Remainders Game
- Codeforces Round #402 (Div. 2) D. String Game (二分)
- Codeforces Round #402 (div. 2)D. String Game(二分)
- 使用工具优化 msql 5.6 的配置
- 深入浅出Mybatis系列(十)---SQL执行流程分析(源码篇)
- centos7.0安装Apache+mysql+php
- PostgresQL FDW 源码分析之总结
- PHP购物车代码
- Codeforces Round #360 (Div. 2) -- D. Remainders Game (中国剩余定理)
- Ubuntu下查看软件版本及安装位置
- 算法导论 第15章 动态规划:15.1钢条切割
- CSS布局之【Position】属性
- Java设计模式之单例模式
- Codeforces Round #358 (Div. 2) D dp
- C#桌面办公应用-工资管理系统系列五
- 最短路径算法汇总
- 图算法0之1001