AC Codeforces Round #499 (Div. 2) E. Border 扩展欧几里得
没想出来QAQ....QAQ....QAQ....
对于一般情况,我们知道 ax+by=gcd(a,b)ax+by=gcd(a,b)ax+by=gcd(a,b) 时方程是一定有解的。
如果改成 ax+by=cax+by=cax+by=c 的话该方程有解当且仅当 ccc % gcd(a,b)==0gcd(a,b)==0gcd(a,b)==0 。
这个结论在大于2个个未知数的时候也是成立的,即对于:
a1x1+a2x2+a3x3+......anxn=gcd(a1,a2,a3,...an)a_{1}x_{1}+a_{2}x_{2}+a_{3}x_{3}+......a_{n}x_{n}=gcd(a_{1},a_{2},a_{3}, ...a_{n})a1x1+a2x2+a3x3+......anxn=gcd(a1,a2,a3,...an) 是成立的。
在原题中,我们要求的是 a1x1+a2x2+a3x3+......anxn≡a_{1}x_{1}+a_{2}x_{2}+a_{3}x_{3}+......a_{n}x_{n}\equiva1x1+a2x2+a3x3+......anxn≡ m(modm(modm(mod k)k)k) 中 mmm 的解集。
那么我们就可以先将式子转化为 a1x1+a2x2+a3x3+......anxn−bk=ma_{1}x_{1}+a_{2}x_{2}+a_{3}x_{3}+......a_{n}x_{n}-bk=ma1x1+a2x2+a3x3+......anxn−bk=m。
根据扩展欧几里得定理,mmm 存在当且仅当 mmm 是 gcd(a1...an,k)gcd(a_{1}...a_{n},k)gcd(a1...an,k) 的整数倍,我们就现将 gcd(a1...an,k)gcd(a_{1}...a_{n},k)gcd(a1...an,k) 求出,并分别乘以 2,3,4...2,3,4...2,3,4... 结果大于等于 kkk 时停止即可。
Code:
#include<cstdio>
using namespace std;
inline int gcd(int a,int b) { return b == 0 ? a : gcd(b, a % b); }
int main()
{
int n,k;
scanf("%d%d",&n,&k);
int m = k;
for(int i = 1;i <= n; ++i)
{
int a; scanf("%d",&a);
m = gcd(m, a);
}
printf("%d\n",k / m);
int cnt = 0;
while(cnt < k)
{
printf("%d ",cnt);
cnt += m;
}
return 0;
}
AC Codeforces Round #499 (Div. 2) E. Border 扩展欧几里得的更多相关文章
- Codeforces Round #499 (Div. 1)部分题解(B,C,D)
Codeforces Round #499 (Div. 1) 这场本来想和同学一起打\(\rm virtual\ contest\)的,结果有事耽搁了,之后又陆陆续续写了些,就综合起来发一篇题解. B ...
- Codeforces Round #499 (Div. 1)
Codeforces Round #499 (Div. 1) https://codeforces.com/contest/1010 为啥我\(\rm Div.1\)能\(A4\)题还是\(\rm s ...
- Codeforces Round #499 (Div. 2)
Codeforces Round #499 (Div. 2) https://codeforces.com/contest/1011 A #include <bits/stdc++.h> ...
- Codeforces Round #499 (Div. 1) F. Tree
Codeforces Round #499 (Div. 1) F. Tree 题目链接 \(\rm CodeForces\):https://codeforces.com/contest/1010/p ...
- [codeforces 200 E Tractor College]枚举,扩展欧几里得,三分
题目出自 Codeforces Round #126 (Div. 2) 的E. 题意大致如下:给定a,b,c,s,求三个非负整数x,y,z,满足0<=x<=y<=z,ax+by+cz ...
- 【Codeforces Round #499 (Div. 2) E】Border
[链接] 我是链接,点我呀:) [题意] 给你n个数字,每个数字可以无限用,每种方案可以组成一个和,问你%k的结果有多少种不同的结果. [题解] 相当于给你一个方程 \(x_1*a_1+x_2*a_2 ...
- 7-27 Codeforces Round #499 (Div. 2)
C. Fly 链接:http://codeforces.com/group/1EzrFFyOc0/contest/1011/problem/C 题型:binary search .math. 题意:总 ...
- Codeforces Round #499 (Div. 2) Problem-A-Stages(水题纠错)
CF链接 http://codeforces.com/contest/1011/problem/A Natasha is going to fly to Mars. She needs to bui ...
- Codeforces Round #499 (Div. 2) D. Rocket题解
题目: http://codeforces.com/contest/1011/problem/D This is an interactive problem. Natasha is going to ...
随机推荐
- vue 绑定 HTML Class
绑定 HTML Class
- Project Euler 28 Number spiral diagonals
题意:给出一个 1001 × 1001 的矩阵,寻找每一圈四个顶点,并求出所有顶点的和 思路:只需要找到右上顶点数字的规律,然后每一圈四个顶点构成了一个等差数列,求个和即可 /************ ...
- js操作url参数
function getQueStr(url, ref) //获取参数值 { var str = url.substr(url.indexOf('?') + 1); if (str.indexOf(' ...
- 洛谷P1200 [USACO1.1]你的飞碟在这儿Your Ride Is He…
题目描述 众所周知,在每一个彗星后都有一只UFO.这些UFO时常来收集地球上的忠诚支持者.不幸的是,他们的飞碟每次出行都只能带上一组支持者.因此,他们要用一种聪明的方案让这些小组提前知道谁会被彗星带走 ...
- BZOJ 4367 [IOI2014]holiday (决策单调DP+主席树+分治)
题目大意:略 题目传送门 神题,不写长题解简直是浪费了这道题 贪心 考虑从0节点出发的情况,显然一直往前走不回头才是最优策略 如果起点是在中间某个节点$s$,容易想到,如果既要游览$s$左边的某些景点 ...
- STM32 ADC多通道转换DMA模式与非DMA模式两种方法(HAL库)
一.非DMA模式(转) 说明:这个是自己刚做的时候百度出来的,不是我自己做出来的,因为感觉有用就保存下来做学习用,原文链接:https://blog.csdn.net/qq_24815615/arti ...
- (7)JPA - Hibernate【从零开始学Spring Boot】
在说具体如何在spring boot 使用Hibernate前,先抛装引玉些知识点?什么是JPA呢? JPA全称Java Persistence API.JPA通过JDK 5.0注解或XML描述对象- ...
- C#中的DES加密
publicstaticstringEncryptString(string sInputString,string sKey,string sIV) { try { byte[] data =Enc ...
- JeeSite(2):导入数据,进入系统
本文的原文连接是: http://blog.csdn.net/freewebsys/article/details/50954485 未经博主同意不得转载. 博主地址是:http://blog.csd ...
- 自己定义View实现水平滚动控件
前几天项目中须要使用到一个水平可滚动的选择条,类似下图效果(图片是从简书上一位作者那儿找来的,本篇也是在这位作者的文章的基础上改动的,站在大神的肩膀上,哈哈,因为原文没有提供demo,并且实现的效果跟 ...