zoukankan      html  css  js  c++  java
  • 【中国剩余定理】 poj 1006

    生理周期  简单模拟

    对于超出23 * 28 * 33(21252)时进行求余运算即可。

    #include<stdio.h>
    int main()
    {
        //freopen("in.txt","r",stdin);
        int a,b,c,d,s,m=1;
        while(scanf("%d %d %d %d",&a,&b,&c,&d),(a!=-1||b!=-1||c!=-1||d!=-1))
        {
            s=a;
            if(b>s)
                s=b;
            if(c>s)
                s=c;
            do
            {
                s++;
          }while (((s+d-a)%23!=0)|| ((s+d-b))%28!=0 ||((s+d-c)%33!=0) );
            if(s>21252)
               s=s%21252;
            printf("Case %d: the next triple peak occurs in %d days.
    ",m,s);
            m++;
        }
        return 0;
    }

    中国剩余定理
    若某数x分别被d1、、…、dn除得的余数为r1、r2、…、rn,则可表示为下式:
    x=R1r1+R2r2+…+Rnrn+RD
    其中R1是d2、d3、…、dn的公倍数,而且被d1除,余数为1;
    R1 、R2…、

    Rn是d1、d2、…、dn-1的公倍数,而且被dn除,余数为1;
    D是d1、d2、…、的最小公倍数;
    R是任意整数,可根据实际需要决定;
    且d1、、…、必须互质,以保证每个Ri(i=1,2,…,n)都能求得.
    实际上POJ1006就是中国剩余定理的典型应用
    根据上面的条件求出常数R1 = 5544,R2 = 14421,R3 = 1288,D = 21252
    每次给的数据中的前三个值即相当于上面的余数。
    则显然:
    res = R1 * Physical + R2 * Emotion + R3 * Intelligence + RD - givenDate
    并且0 =< res <= D

    #include <stdio.h>
    int main()
    {
        int R1 = 5544, R2 = 14421, R3 = 1288, R = 21252;
        int ph, em, in, day;
        int res,i;
        for(i=1; 1; i++){
           scanf("%d%d%d%d", &ph, &em, &in, &day);
           if(ph==-1)break;
           res = (R1 * ph + R2 * em + R3 * in - day) % R;
     
           res = (res + R - 1) % R + 1;  //此步处理了负数和零的两种边界情况
           printf("Case %d: the next triple peak occurs in %d days.
    ", i, res);
        }
        return 0;
    }

    提交结果:

    模拟          782MS

    中国剩余定理  32MS

    太高端了!!!!!!

  • 相关阅读:
    腾讯微博
    城市左右选择添加按钮案例
    jQuery元素操作1
    动态创建表格
    五角星评论案例
    点击图片箭头回到顶部案例
    HDU1506: Largest Rectangle in a Histogram(最大子矩阵,好题动态优化左右边界)
    HDU1165: Eddy's research II(递推)
    HDU1158:Employment Planning(线性dp)
    HDU1081:To The Max(最大子矩阵,线性DP)
  • 原文地址:https://www.cnblogs.com/balfish/p/4015165.html
Copyright © 2011-2022 走看看