Biorhythms

我竟然1A了, 终于从一天的浑噩中找回点自信了。人生第一次做中国剩余定理的题,靠着自己的理解。

题意:人的一生分别有体力,情感,智商三个生理周期巅峰,循环时间分别是23,28,33天。现在给出你这三个生理活动在今年出现巅峰的时期(不一定是今年的第一次巅峰状态),然后给出今天的日期,求下一次同时达到巅峰距今天有多少天,如果今天就是同时达到巅峰那么需要求出下一次巅峰。

思路:如果会扩展欧几里德算法就很简单了。很明显是中国剩余定理的一个运用。分别用两个数组存模数和这三个生理日期,然后利用公式:M1*M11*b1+M2*M22*b2+M3*M33*b3+...+Mi*Mii*bi。这里Mii是Mi关于模mi的乘法逆元。

ll e_gcd(ll a,ll b,ll &x,ll &y)
{
if(a==0&&b==0) return -1;
if(b==0)
{
x=1,y=0;
return a;
}
ll d=e_gcd(b,a%b,y,x);
y-=a/b*x;
return d;
}
int main()
{
ll b[3],d;
ll m[3]={23,28,33};
int t=1;
while(~scanf("%I64d%I64d%I64d%I64d",&b[0],&b[1],&b[2],&d))
{
if(d==-1) return 0;
b[0]=b[0]?b[0]:23;
b[1]=b[1]?b[1]:28;
b[2]=b[2]?b[2]:33;
ll M=21252;
ll ans=0;
for(int i=0;i<3;i++)
{
ll x,y;
ll mi=M/m[i];
ll k=e_gcd(mi,m[i],x,y);
ans=(ans+M+mi*x*b[i])%M;
}
ans=ans<=d?ans+M:ans;
printf("Case %d: the next triple peak occurs in %I64d days.\n",t++,ans-d);
}
return 0;
}

POJ 1006-Biorhythms,中国剩余定理,学信安的路过!的更多相关文章

  1. POJ 1006:Biorhythms 中国剩余定理

    Biorhythms Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 121194   Accepted: 38157 Des ...

  2. POJ1006 Biorhythms —— 中国剩余定理

    题目链接:https://vjudge.net/problem/POJ-1006 Biorhythms Time Limit: 1000MS   Memory Limit: 10000K Total ...

  3. 1284-Primitive Roots,学信安的路过

                                                      Primitive Roots 此题通过率如此之高,料想不会很难,但是再简单小菜还是不会.. 嗯,下 ...

  4. POJ 1006 Biorhythms 中国的法律来解决剩余的正式

    这个问题以前用模拟的方法来解决亚军,正如溶液是一个通用的解决方案. 这里使用数学方法:剩下的孙子法(当然,被称为中国剩余法).由于建议的孙子.所以也承认外国的孙子是数学家. 参考数论建议大家学习的专业 ...

  5. POJ 1006 中国剩余定理

    #include <cstdio> int main() { // freopen("in.txt","r",stdin); ; while(sca ...

  6. 数论E - Biorhythms(中国剩余定理,一水)

    E - Biorhythms Time Limit:1000MS     Memory Limit:10000KB     64bit IO Format:%I64d & %I64u Subm ...

  7. POJ 1006 - Biorhythms (中国剩余定理)

    B - Biorhythms Time Limit:1000MS     Memory Limit:10000KB     64bit IO Format:%I64d & %I64u Subm ...

  8. POJ 1006 Biorhythms(中国剩余定理)

    题目地址:POJ 1006 学习了下中国剩余定理.參考的该博客.博客戳这里. 中国剩余定理的求解方法: 假如说x%c1=m1,x%c2=m2,x%c3=m3.那么能够设三个数R1,R2,R3.R1为c ...

  9. POJ1006——中国剩余定理

    题目:http://poj.org/problem?id=1006 中国剩余定理:x= m/mj + bj + aj 讲解:http://www.cnblogs.com/MashiroSky/p/59 ...

随机推荐

  1. 150 Evaluate Reverse Polish Notation 逆波兰表达式求值

    求在 逆波兰表示法 中算术表达式的值.有效的运算符号包括 +, -, *, / .每个运算对象可以是整数,也可以是另一个逆波兰计数表达.例如:  ["2", "1&quo ...

  2. Excel数据直接到DataTable--->DB

    1) Excel数据直接导入到临时生成的DataTable using (OleDbConnection selectConnection = new OleDbConnection("Pr ...

  3. .net 音频转换 .amr 转 .mp3 (七牛转换法)

    .amr 用于移动设备的音频,压缩比比较大,多用于人声.通话,效果还行!所以,移动设备多采用amr格式来进行录存!比较常见的例子:通话录音,微信语音以及录音等! 这个鬼,用两个字来形容,就是“蛋疼”: ...

  4. WPF学习12:基于MVVM Light 制作图形编辑工具(3)

    本文是WPF学习11:基于MVVM Light 制作图形编辑工具(2)的后续 这一次的目标是完成 两个任务. 本节完成后的效果: 本文分为三个部分: 1.对之前代码不合理的地方重新设计. 2.图形可选 ...

  5. 【学习笔记】深入理解js原型和闭包(16)——完结

    之前一共用15篇文章,把javascript的原型和闭包讲解了一下. 首先,javascript本来就“不容易学”.不是说它有多难,而是学习它的人,往往都是在学会了其他语言之后,又学javascrip ...

  6. 总结这几天学到的HTML标签

    1.基础知识W3S,操作慕课网或者FCC网 2.标签必须闭合 标签一般成对出现如:<h1>xxxx</h1> 标签也有空内容标签如:<br/> 标签的属性和属性值放 ...

  7. SIRI课程表

    wen 周一@0@{今天没课哦}周一 周二今天共一节课 第2节,可编程控制器应用,11号教学楼1 0 3房间 周二 周三今天共三节课 第二节,过程控制系统,2号楼2 1 0房间,第三节机械制造技术11 ...

  8. iOS 蒲公英第三方打包平台

    http://www.pgyer.com/doc/view/ios_install_failed

  9. Docker - Image创建

    自己创建Image会有一些好处,可以选择最新的版本,而且从国内的镜像创建时更新软件也会从该镜像获取,速度更快. (1)安装debootstrap zhouh1@uhome:/media/zhouh1/ ...

  10. uva1352 Colored Cubes LA3401

    白书第一章例题8 好麻烦! 正方体每面编号为0-5,那么根据顶点和正面,就能确定形态.一共6*4=24种形态. P[i]表示编号i所在位置.比如P[1]=3,表示第二面转到了第四面. 就可以表示出所有 ...