标签:const gcd int 定理 long 计数器 solve ll 裴蜀
https://ac.nowcoder.com/acm/problem/17873
大意:计算器最初值是w=0,每次从数组a中任一个或0个数加入w,w%m后,问能产生多少个不同的数。
思路:
并且w要小于m,所以由裴蜀定理有解满足c/gcd(a,b) == 0可知,w要是gcd(a1,a2,...,an,m)的倍数,且小于m。
所以答案是m/gcd(a1,a2,...,an,m).
#include <bits/stdc++.h>
#define ll long long
const int N = 1e6+7;
const int mod = 1e9+7;
const ll ds = 1e15;
const double eps = 1e-8;
using namespace std;
int a[N];
void solve(){
int n,m,g,x;
cin >> n >> m;
for(int i = 1; i <= n; i++){
cin >> x;
g = __gcd(g,x);
}
cout << m/g << endl;
}
int main(){
// int t;
// cin >> t;
// while(t--)
solve();
//system("pause");
return 0;
}
标签:const,gcd,int,定理,long,计数器,solve,ll,裴蜀 来源: https://blog.csdn.net/qq_46653910/article/details/116352456
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。