BZOJ 1441: Min(裴蜀定理)
阿新 • • 發佈:2018-08-18
分析 eps 一個 define div () print int pan
4059 -1782
,a2,...,an中的任意一個整數,操作次數不限(可以為0次),問計數器的值對m取模後有幾種可能。
BZOJ 1441:Min
Description
給出n個數(A1...An)現求一組整數序列(X1...Xn)使得S=A1*X1+...An*Xn>0,且S的值最小Input
第一行給出數字N,代表有N個數 下面一行給出N個數Output
S的最小值Sample Input
24059 -1782
Sample Output
99HINT
Source
分析:相當於拓展歐幾裏得的n次推廣。
代碼:
1 #include"bits/stdc++.h" 2 #define db double 3 #define ll long long 4 #define vec vector<ll> 5#define ci(x) scanf("%d",&x) 6 #define cd(x) scanf("%lf",&x) 7 #define cl(x) scanf("%lld",&x) 8 #define pi(x) printf("%d\n",x) 9 #define pd(x) printf("%f\n",x) 10 #define pl(x) printf("%lld\n",x) 11 #define rep(i, n) for(int i=0;i<n;i++) 12 using namespace std; 13 const int N = 1e6 + 5; 14 const int mod = 1e9 + 7; 15 const int MOD = 998244353; 16 const db PI = acos(-1.0); 17 const db eps = 1e-10; 18 int n,m; 19 int a[N]; 20 int main() 21 { 22 ci(n); 23 int ans=0; 24 for(int i=0;i<n;i++) ci(a[i]),ans=__gcd(ans,a[i]); 25 pi(ans); 26 }
Wannafly挑戰賽22.A
有一個計數器,計數器的初始值為0,每次操作你可以把計數器的值加上a1
輸入描述:
第一行兩個整數n,m
接下來一行n個整數表示a1-an.
1≤m,a1,a2,...,an≤1000000000
分析:m/gcd(m,a1,a2,..,an);
代碼:
1 #include"bits/stdc++.h" 2 #define db double 3 #define ll long long 4 #define vec vector<ll> 5 #define ci(x) scanf("%d",&x) 6 #define cd(x) scanf("%lf",&x) 7 #define cl(x) scanf("%lld",&x) 8 #define pi(x) printf("%d\n",x) 9 #define pd(x) printf("%f\n",x) 10 #define pl(x) printf("%lld\n",x) 11 #define rep(i, n) for(int i=0;i<n;i++) 12 using namespace std; 13 const int N = 1e6 + 5; 14 const int mod = 1e9 + 7; 15 const int MOD = 998244353; 16 const db PI = acos(-1.0); 17 const db eps = 1e-10; 18 int n,m; 19 int a[N]; 20 int main() 21 { 22 ci(n),ci(m); 23 int ans=m; 24 for(int i=0;i<n;i++) ci(a[i]),ans=__gcd(ans,a[i]); 25 pi(m/ans); 26 }
BZOJ 1441: Min(裴蜀定理)