zoukankan      html  css  js  c++  java
  • 【数论】【中国剩余定理】【LCM】hdu1788 Chinese remainder theorem again

    根据题目容易得到N%Mi=Mi-a。

    那么可得N%Mi+a=Mi。

    两侧同时对Mi取余,可得(N+a)%Mi=0。

    将N+a看成一个变量,就可以把原问题转化成求Mi的LCM,最后减去a即可。

    #include<cstdio>
    #include<algorithm>
    #include<iostream>
    using namespace std;
    typedef long long ll;
    int K;
    ll a;
    int main(){
    	ll x;
    	while(1){
    		cin>>K>>a;
    		if(K==0 && a==0){
    			break;
    		}
    		ll lcm=1;
    		for(int i=1;i<=K;++i){
    			scanf("%I64d",&x);
    			lcm=lcm/__gcd(lcm,x)*x;
    		}
    		printf("%I64d
    ",lcm-a);
    	}
    	return 0;
    }
  • 相关阅读:
    css
    js
    css3
    css
    深浅拷贝
    index-数据结构/算法
    es6知识点
    在vscode中配置sass savepath
    计算机基础
    element-ui使用后手记
  • 原文地址:https://www.cnblogs.com/autsky-jadek/p/6606827.html
Copyright © 2011-2022 走看看