zoukankan      html  css  js  c++  java
  • Biorhythms HDU

    孙子定理:

    当前存在三个式子,t%3=2,t%5=3,t%7=2.然后让你求出t的值的一个通解。

    具体过程:选取3和5的一个公倍数t1能够使得这个公倍数t1%7==1,然后选取3和7的一个公倍数t2使得这个公倍数t2%5==1,然后再选取5和7的一个公倍数t3使得这个公倍数t3%3==1,求出来

    t1==15,t2==21,t3==70,然后最终的答案就是(15*3+21*3+70*2)+105*n.这里的105指的是3 5 7 的最小公倍数,为什么这样做?既然是有余数,那么就把这个余数搞没了就可以了。

    附上李永乐老师的视频链接:https://www.bilibili.com/video/av25823277?from=search&seid=13476544282891947834

    题目链接:https://cn.vjudge.net/problem/HDU-1370

    题目大意:给你三个式子,让你求出满足题目条件的解。

    (n-d)%23=p,(n-d)%28=e,(n-d)%33=i。给你d,p,e,i,让你求出n的值,其实把(n-d)看成一个整体,求出来之后再减去d就能求出n了。

    中国剩余定理模板也存一下。

    m数组是被除数,下标从0开始 m[0]=23,m[1]=28,m[2]=33.

    b数组是等号右边的数,下标从0开始,b[0]=p,b[1]=e,b[2]=i。

    然后求出的答案是(n-d)的值。

    AC代码:

     1 #include<iostream>
     2 #include<stack>
     3 #include<cstring>
     4 #include<iomanip>
     5 #include<stdio.h>
     6 #include<algorithm>
     7 #include<cmath>
     8 #include<queue>
     9 using namespace std;
    10 # define ll long long
    11 # define inf 1ll<<60
    12 const int mod = 21252;
    13 const int maxn = 1e3+100;
    14 int exgcd(int a,int b,int &x,int &y){
    15 int d=a;
    16 if(b!=0){
    17 d=exgcd(b,a%b,y,x);
    18 y-=(a/b)*x;
    19 }
    20 else {
    21 x=1;
    22 y=0;
    23 }
    24 return d;
    25 }
    26 int china(int m0[],int b[]){
    27 int x,y,n,m=1,a=0;
    28 for(int j=0;j<3;j++){
    29 m=m*m0[j];
    30 }
    31 for(int j=0;j<3;j++){
    32 n=m/m0[j];
    33 exgcd(n,m0[j],x,y);
    34 a=a+n*b[j]*x;
    35 }
    36 return a%m;
    37 }
    38 int main(){
    39 int T;
    40 int b[15];
    41 int p,e,i,d;
    42 int Case=0;
    43 scanf("%d",&T);
    44 while(~scanf("%d%d%d%d",&p,&e,&i,&d)){
    45 if(p==-1&&e==-1&&i==-1&&d==-1)break;
    46 int m[3]={23,28,33};
    47 b[0]=p,b[1]=e,b[2]=i;
    48 int sum=china(m,b)-d;
    49 if(sum<=0)sum+=mod;
    50 printf("Case %d: the next triple peak occurs in %d days.
    ",++Case,sum);
    51 }
    52 return 0;
    53 }
  • 相关阅读:
    Spring Boot分布式系统实践【扩展1】shiro+redis实现session共享、simplesession反序列化失败的问题定位及反思改进
    Spring Boot分布式系统实践【2】框架搭建
    javascript日期比较 js日期相差天数计算
    SyntaxHighlighter_代码高亮插件
    CSS控制div自动延伸到窗口100%高度
    iphone天气插件weathericon,安装,及其解决天气不变的方法!亲测!
    Zapatec.Calendar 说明文档
    html设置多少秒跳转
    CSS命名规范
    解决firefox的button按钮文字不能垂直居中
  • 原文地址:https://www.cnblogs.com/letlifestop/p/10427856.html
Copyright © 2011-2022 走看看