Description

One day I was shopping in the supermarket. There was a cashier(收银员) counting coins seriously when a little kid running and singing "门前大桥下游过一群鸭,快来快来 数一数,二四六七八". And then the cashier put the counted coins back morosely(愁眉苦脸的) and count again... 
Hello Kiki is such a lovely girl that she loves doing counting in a different way. For example, when she is counting X coins, she count them N times. Each time she divide the coins into several same sized groups and write down the group size Mi and the number of the remaining coins Ai on her note. 
One day Kiki's father found her note and he wanted to know how much coins Kiki was counting.

Input

The first line is T indicating the number of test cases. 
Each case contains N on the first line, Mi(1 <= i <= N) on the second line, and corresponding(相当的) Ai(1 <= i <= N) on the third line. 
All numbers in the input and output are integers. 
1 <= T <= 100, 1 <= N <= 6, 1 <= Mi <= 50, 0 <= Ai < Mi

Output

For each case output the least positive integer X which Kiki was counting in the sample output format. If there is no solution then output -1.

Sample Input

2

2

14 57

5 56

5

19 54 40 24 80

11 2 36 20 76

Sample Output

Case 1: 341

Case 2: 5996

题意:res%14=5 res%57=56 求res?

思路:套用中国剩余问题的模板

代码:

#include<stdio.h>
#include<string.h>
#include<iostream>
#include<algorithm>
#include<math.h>
#include<set>
#include<queue>
#include<vector>
using namespace std;
#define N 10005
#define ll __int64
ll gcd(ll a, ll b) {return b == 0 ? a : gcd(b, a%b);
}
//求一组解(x,y)使得 ax+by = gcd(a,b), 且|x|+|y|最小(注意求出的 x,y 可能为0或负数)。
//下面代码中d = gcd(a,b)
//可以扩展成求等式 ax+by = c,但c必须是d的倍数才有解,即 (c%gcd(a,b))==0
void extend_gcd (ll a , ll b , ll& d, ll &x , ll &y) {  if(!b){d = a; x = 1; y = 0;}else {extend_gcd(b, a%b, d, y, x); y-=x*(a/b);}
}
ll inv(ll a, ll n) { //计算%n下 a的逆。如果不存在逆return -1;ll d, x, y;extend_gcd(a, n, d, x, y);return d == 1 ? (x+n)%n : -1;
}
ll n[N],b[N],len,lcm;
ll work(){for(ll i = 2; i <= len; i++) {ll A = n[1], B = n[i], d, k1, k2, c = b[i]-b[1];extend_gcd(A,B,d,k1,k2);if(c%d)return -1;ll mod = n[i]/d;ll K = ((k1*(b[i]-b[1])/d)%mod+mod)%mod;b[1] = n[1]*K + b[1];n[1] = n[1]*n[i]/d;}if(b[1]==0)return lcm;return b[1];
}
int main(){ll i,T,Cas=1;cin>>T;while(T--){cin>>len;lcm = 1;for(i=1;i<=len;i++) {cin>>n[i];lcm = lcm / gcd(lcm,n[i]) * n[i];}for(i=1;i<=len;i++)cin>>b[i];cout<<"Case "<<Cas++<<": ";cout<<work()<<endl;}return 0;
}

hdu3579(中国剩余问题经典)相关推荐

  1. CF338D GCD Table(拓展中国剩余定理,细节处理,2900分)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 CF338D GCD Table(拓展中国剩余定理,细节处理,2900分) Problem 有一张 n ...

  2. 基于Miracl库的中国剩余定理C语言实现

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/tch3430493902/articl ...

  3. 初等数论--同余方程--同余方程组:中国剩余定理

    初等数论--同余方程--同余方程组:中国剩余定理 博主是初学初等数论(整除+同余+原根),本意是想整理一些较难理解的定理.算法,加深记忆也方便日后查找:如果有错,欢迎指正. 我整理成一个系列:初等数论 ...

  4. 数论一之定理证明——裴蜀/威尔逊/费马/扩展欧几里得/[扩展]欧拉/[扩展]中国剩余定理,欧拉函数,逆元,剩余系,筛法

    打死没想到会在H老师处学懂数论 同余,整除 模运算 埃式筛法 欧拉筛法 最大公约数和最小公倍数 辗转相除法 更相减损术 裴蜀定理 威尔逊定理 费马定理 同余等价类.剩余系.缩系 欧拉函数 欧拉定理 扩 ...

  5. 信奥中的数学:孙子定理 中国剩余定理

    孙子定理 中国剩余定理 孙子定理 中国剩余定理_Dreamer Thinker Doer-CSDN博客 中国剩余问题(简介+详解) 中国剩余问题(简介+详解)_dreamzuora的博客-CSDN博客 ...

  6. 数论 —— 线性同余方程组与中国剩余定理

    [线性同余方程组] 由若干个线性同余方程构成的线性方程组. 例如: 其解法最早由我国<孙子算经>给出,因此解法称为"孙子定理",又叫"中国剩余定理" ...

  7. 通常情况下的中国剩余定理

    这几天学了学中国剩余定理....本来计划是一天学互质版一天学非互质版的,结果非互质版就学了好长时间...不过好在会证明了,考场上大力推一波应该是没问题的吧... 中国剩余定理是求形如x≡a1(mod ...

  8. poj 1006 java_POJ 1006 Java:中国剩余定理

    题目描述: 人生来就有三个生理周期,分别为体力.感情和智力周期,它们的周期长度为23天.28天和33天.每一个周期中有一天是高峰.在高峰这天,人会在相应的方面表现出色.例如,智力周期的高峰,人会思维敏 ...

  9. 从孙子算经到中国剩余定理

    中国剩余定理中间涉及一个重要观念:互质: 首先来看<孙子算经>卷下第二十六问:今有物,不知其数.三.三数之,剩二:五.五数之,剩三:七.七数之,剩二.问物几何? 转换为数学语言即是(理解其 ...

最新文章

  1. 干掉 ZooKeeper,阿里为什么不用 ZK 做服务发现?
  2. Spring事务原理,Java开发岗还不会这些问题
  3. excel合并计算_【Excel】合并计算和模拟分析的应用
  4. AtCoder Beginner Contest 192 F - Potion 背包dp
  5. mysql的索引和执行计划
  6. 小孔成像总结_【伟林教育】初中生必看:中考物理解题技巧+方法总结,可以说很到位了!...
  7. Tricks(十九)—— 获得 list of lists 每一列的最大最小值
  8. 安装最新LAMP环境(CentOS7+PHP7.1.5+Mysql5.7)
  9. 语音数据增强—使用kaldi对语音加噪
  10. MySQL查询效率问题
  11. error: Exited sync due to fetch errors
  12. 从其他地方复制过来的文字中间有空格怎么删除?
  13. ADB连接手机做淘宝猫币任务领取猫币
  14. 高斯-约当 (Gauss-Jordan) 消元法 [学习笔记]
  15. html emsp ensp nbsp; thinsp;空格到底怎么占用像素的
  16. 一波三折的卖身路,网易考拉去向何方
  17. 各大财经网站股票数据接口
  18. 断电断网等原因致使重新进入linux时系统进不去,进不了图形界面,出现/dev/sda2 recovery,clean,,,
  19. 《统计学最全思维导图》
  20. 邓宁-克鲁格效应_冒名顶替综合症和社区中的邓宁-克鲁格效应

热门文章

  1. axure怎么做5秒倒计时_罗胖60秒:怎么做一个课程?
  2. 口琴膜片什么作用_2020年半音阶口琴选购攻略,让小白告别选择困难
  3. Java高级架构师需要掌握什么?
  4. JAVA程序员已成为最疯狂的加班行业,没有之一?
  5. react 子传参父_react子父传参有几种方法?
  6. 【LeetCode笔记】199. 二叉树的右视图(Java、二叉树、层序遍历)
  7. java怎么给list集合排序_java list集合排序按某一属性排序操作
  8. 高中数学40分怎么办_高二数学不会,准高三该怎么办?40分到高考140如何逆袭?...
  9. 中奖人js滚动效果_js使用transition效果实现无缝滚动
  10. cookie记录了服务器相关的信息,使用cookie记录信息(精选).ppt