AC Codeforces Round #499 (Div. 2) E. Border 擴充套件歐幾里得
沒想出來QAQ....
對於一般情況,我們知道 ax+by=gcd(a,b) 時方程是一定有解的。
如果改成 ax+by=c 的話該方程有解當且僅當 c % gcd(a,b)==0 。
這個結論在大於2個個未知數的時候也是成立的,即對於:
a1x1+a2x2+a3x3+......anxn=gcd(a1,a2,a3,...an) 是成立的。
在原題中,我們要求的是 a1x1+a2x2+a3x3+......anxn≡ m(mod k) 中 m 的解集。
那麼我們就可以先將式子轉化為 a1x1+a2x2+a3x3+......anxn−bk=m。
根據擴充套件歐幾里得定理,m 存在當且僅當 m 是 gcd(a1...an,k) 的整數倍,我們就現將 gcd(a1...an,k) 求出,並分別乘以 2,3,4... 結果大於等於 k 時停止即可。
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 擴充套件歐幾里得
沒想出來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 的話該方程有解當且僅當
Codeforces Round #499 (Div. 2)E. Border(離散數學)
題意:給你n種紙幣,然後給你一個k,代表k進位制,意思就是求這n種紙幣的任意組合,然後mod k,能組成多少0~m-1的數字 思路:離散數學的基本知識,n個紙幣和m的最大公約數就是最小生成元,這個
Codeforces Round #499 (Div. 2) E. Border
E. Border time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output Astronaut
Codeforces Round #499 (Div. 1) C. Border || Codeforces Round #499 (Div. 2) E.Border(數論/貝祖定理)
Codeforces Round #499 (Div. 1) C. Border Codeforces Round #499 (Div. 2) E. Border
Border Codeforces Round #499 (Div. 2) (數論)
E. Border time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output Ast
Codeforces Round #406 (Div. 2) E. Till I Collapse(主席樹)
esp type 個數 gif lan upd roo node .com 題目鏈接:Codeforces Round #406 (Div. 2) E. Till I Collapse 題意: 給你n個數,對於每一個k(1<=k<=n),劃分區間,每個區間只能有
[Codeforces Round #261 (Div. 2) E]Pashmak and Graph(Dp)
solution and other main ems scanf homework max urn Description Pashmak‘s homework is a problem about graphs. Although he always tries
(博弈sg) Codeforces Round #417 (Div. 2) E Sagheer and Apple Tree
paths 相同 friend pri 產生 chan star ren have Sagheer is playing a game with his best friend Soliman. He brought a tree with n nodes numbered
Codeforces Round #420 (Div. 2) E. Okabe and El Psy Kongroo(矩陣)
clu blank his 題目 pri 狀態 oid c++ class 題目鏈接:Codeforces Round #420 (Div. 2) E. Okabe and El Psy Kongroo 題意: 在一個二維方格子裏有n條線段,有三種走法 (x?+?1,?y?
Codeforces Round #417 (Div. 2) E. Sagheer and Apple Tree(樹上Nim)
ide vector 等於 如果 ace ble 技術 方式 復雜度 題目鏈接:Codeforces Round #417 (Div. 2) E. Sagheer and Apple Tree 題意: 給你一棵樹,每個節點有a[i]個蘋果,有兩個人要在這個樹上玩遊戲。 兩個
Codeforces Round #386 (Div. 2) E - Numbers Exchange
type chang 思路 space color pri pan style break 題意:給你n個數,和m,讓我們從1-m選數字,使得n個數奇數和偶數個數相同切各不相同 思路:模擬 1 #include<bits/stdc++.h> 2 using
Codeforces Round #435 (Div. 2) E. Mahmoud and Ehab and the function(預處理+二分)
class [1] can 行處理 long 個數 分享 amp abs 題目鏈接:點我點我 題意:公式:,給出n個數,從a[1]到a[n],和m個數(b數組),然後從b數組裏挑出連續的n個數(也就m-n+1中選擇),按公式計算,使得f最小, 還有q次對a數組的操作(某
Codeforces Round #436 (Div. 2) E. Fire
無法 之前 表示 const oid include clu else () 題意:給你n個需要救得東西,每個東西給出t,d,p,表示需要花費t時間,在d時間之前,價值為p,問救出最多價值,並把每個東西序號輸出,比如 3 3 4 ,這就無法救出 思路:dp,dp[i]
Codeforces Round #384 (Div. 2) E. Vladik and cards 狀壓dp
答案 clu test none urn 數字 ble inline return Codeforces Round #384 (Div. 2) E. Vladik and cards 狀壓dp 大致題意: 給定一個序列an,序列中只有1~8的8個整數,讓你選出一個子序列
Codeforces Round #341 (Div. 2) E - Wet Shark and Blocks
取出 splay names mem pri 思路 turn const gpo 題目大意:有m (m<=1e9) 個相同的塊,每個塊裏邊有n個數,每個數的範圍是1-9,從每個塊裏邊取出來一個數組成一個數,讓你求組成的方案中 被x取模後,值為k的方案數。(1<=
Codeforces Round #321 (Div. 2) E - Kefa and Watch
back fin put 我們 esp bool cond can push_back 題目大意:給你一個由0-9組成的字符串,有m個詢問,兩種操作,第一種將l到r的字符全部變成c,第二種問l到r這段 字符串的循環節是不是d。 思路:首先我們要知道怎麽判斷字符串的循環節的長
Codeforces Round #466 (Div. 2) ---e
lose force 中間 為什麽 space problem while .com long long Codeforces Round #466 (Div. 2) 比賽時沒想出來...賽後聽大佬說了說感覺其實很簡單嘛... 這題算是個結論題吧,我們可以發現分得
Codeforces Round #467 (Div. 2) E -Lock Puzzle
pri DC codeforce col define AI print char .com Lock Puzzle 題目大意:給你兩個字符串一個s,一個t,長度<=2000,要求你進行小於等於6100次的shift操作,將s變成t, shift(x)表示將字符串的最
Codeforces Round #379 (Div. 2) E. Anton and Tree
vector #define clu cto bits air int 向上 fin 題意:給你一棵樹, 每個點要麽是黑色要麽是白色, 有一種操作是將同一個顏色的連通塊變成相反的顏色,問你最少變換幾次, 整顆樹變成一種顏色。 思路: 縮點, 加求樹的直徑, 答案為樹
Codeforces Round #301 (Div. 2) E. Infinite Inversions —— 逆序對 離散化 + 樹狀數組
emc graph eps fin XA pie add element 方法 題目鏈接:http://codeforces.com/contest/540/problem/E E. Infinite Inversions time limit per t