hdu3575(中国剩余定理,注意特殊情况处理)
来源:互联网 发布:unity3d ios插件 编辑:程序博客网 时间:2024/05/29 17:39
#include<cstdio>#include<algorithm>#include<cstring>#include<cmath>#define ll long long using namespace std;ll n,m[10009],a[10009];void exgcd(ll a,ll b,ll &d,ll &x,ll &y){if (b==0){d=a;x=1;y=0;return ;}exgcd(b,a%b,d,y,x);y-=x*(a/b);}ll gcd(ll a,ll b){return b? gcd(b,a%b):a;}int main(){int T;scanf("%d",&T);for (int i=1;i<=T;i++){ bool o=true;scanf("%lld",&n);for (int j=1;j<=n;j++) scanf("%lld",&m[j]);for (int j=1;j<=n;j++) scanf("%lld",&a[j]);for (int j=2;j<=n;j++){ll d,y,x;exgcd(m[j-1],m[j],d,x,y);if ((a[j]-a[j-1])%d) o=false;x*=(a[j]-a[j-1])/d;ll h=m[j]/d;x=(x%h+h)%h;a[j]=x*m[j-1]+a[j-1];m[j]=m[j-1]/d*m[j];a[j]=(a[j]%m[j]+m[j])%m[j];}if (a[n]==0)//如果余数都是0的话就按照这种情况{a[n]=1;for (int i=1;i<=n;i++) a[n]=a[n]*m[i]/gcd(m[i],a[n]);}if(o) printf("Case %d: %lld\n",i,a[n]);else printf("Case %d: -1\n",i);}return 0;}
0 0
- hdu3575(中国剩余定理,注意特殊情况处理)
- 中国剩余定理 (非互质情况)
- 中国剩余定理--不互质情况
- 中国剩余定理(非互质)hdu3579 Hello Kiki ====注意刚好全部整除的情况
- 中国剩余定理模板(1) 两两互质情况
- 中国剩余定理模板(2)出现不互质情况
- HDU 1573 中国剩余定理(有不互质情况)
- 中国剩余定理模板(互质的情况)
- 中国剩余定理(互质与不互质的情况)
- 中国剩余定理(不互质的情况)-HDU3579
- HDU3579中国剩余定理(不互质的情况)
- hdu 1573(中国剩余定理非互质情况)
- 中国剩余定理(转)
- 中国剩余定理(韩信点兵)
- poj2891(中国剩余定理)
- POJ_1006_Biorhythms(中国剩余定理)
- 中国剩余定理(续)
- HDU1370(中国剩余定理)
- Java多态
- 遇到的那些必须弄清楚的关于高性能动画的知识点
- repo重新与服务器同步
- Java Swing中的工具栏(JToolBar)
- 完美解决TP-LINK无线路由桥接后电脑能上网、手机不能上的问题
- hdu3575(中国剩余定理,注意特殊情况处理)
- request.getContextPath() 下有红线 生成不成功
- MES更新 - ERP配套图表
- oracle 导入txt
- 数组名和数组名取地址的区别
- 1013. Battle Over Cities (25)
- 传纸条[NOIP 2008提高组][Codevs 1169]
- mysql常用的增删改操作
- Zookeeper:Curator