hdu 1370(中国剩余定理)
来源:互联网 发布:mac os 10.13发布时间 编辑:程序博客网 时间:2024/04/29 05:06
点击打开链接
题意:
人有三个循环,循环周期分别为23,28,33,给你这三个周期出现的时间a,b,c,以及开始计算的天数d。求三个周期在同一天的时间。。。
a=(n-d)%23;
b=(n-d)%28
c=(n-d)%33;
23 28 33互质可以用中国剩余定理
ps:自己犯了一个小错误,debug好长时间。。
#include"stdio.h"#include"string.h"#define N 4int A[N],R[N],k;void exgcd(int a,int b,int &x,int &y){if(b==0){x=1;y=0;}else{exgcd(b,a%b,x,y);int t=x;x=y;y=t-(a/b)*y;}}int china_reminder(int a[],int r[],int k){int i;int x,y;int n,m;int ans;ans=0;n=1;for(i=0;i<k;i++)n*=a[i];for(i=0;i<k;i++){m=n/a[i];exgcd(m,a[i],x,y);ans=(ans+m*x*r[i]+n)%n;//不要写成ans+=..}if(ans<=0)ans+=n;return ans;}int main(){int ans;int d;int t=1;int a,b,c;scanf("%d",&a);while(scanf("%d%d%d%d",&a,&b,&c,&d)!=-1){if(a==-1&&b==-1&&c==-1&&d==-1)break;k=3;a%=23;b%=28;c%=33;A[0]=23;R[0]=a;A[1]=28;R[1]=b;A[2]=33;R[2]=c;ans=china_reminder(A,R,k);ans-=d;if(ans<=0)ans+=23*28*33;printf("Case %d: the next triple peak occurs in %d days.\n",t++,ans);}return 0;}
- hdu 1370 中国余数(剩余定理)
- hdu 1370(中国剩余定理)
- HDU 1370 Biorhythms (中国剩余定理)
- hdu 1370 Biorhythms(中国剩余定理)
- HDU 1370(中国剩余定理)
- hdu 1370 中国剩余定理
- hdu-1370(中国剩余定理余数互质)&&hdu-1573(中国剩余定理余数不互质)
- HDU 中国剩余定理
- HDU 1370 Biorhythms(中国剩余定理 + 拓展欧几里得)
- HDU 1370 Biorhythms (中国剩余定理, 简单套用)
- HDU 1370 打表 || 中国剩余定理
- HDU 1370 Biorhythms 中国剩余定理
- hdu 1370 中国剩余定理+exgcd
- hdu 3579(中国剩余定理)
- hdu 1573(中国剩余定理)
- hdu 3579(中国剩余定理非互质)
- hdu 5668 中国剩余定理(模版)
- hdu-5446(中国剩余定理+lucas)
- uva 409
- HDU 1052 田忌赛马
- gdb之signal
- Android中Touch事件分析--解决HorizontalScrollView滑动和按钮事件触发问题
- Set Matrix Zeroes
- hdu 1370(中国剩余定理)
- hdu 4639 hehe 多校联合训练第四场
- STL中的所有算法(70个)
- struts2+poi 对excel进行导出
- 免费游戏设计法则
- js权威指南学习笔记
- hdu 4634 Swipe Bo 搜索
- WH_KEYBOARD和WH_KEYBOARD_LL的区别
- accdb格式和mdb格式的转换