• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            pku 3393 Lucky and Good Months by Gregorian Calendar 英語閱讀題

            哎。。怎么說呢,這種題目一點細節(jié)注意不到就是幾個小時的浪費
            總結下題目吧
            說白了就是計算公歷系統(tǒng)中某年某月的第一天是不是周一、周六、周日以及某年某月的最后一天是不是周五、周六、周日
            關于公歷大家知道的就不說了,說幾點大家可能不知道的
            1、關于閏年
            An year y, y > 1582 and y ≠ 1700, is a leap year if and only if(注意!1700算閏年)
            • y is divisible by 4, and

            • y is not divisible by 100 unless it is divisible by 400.

            An year y, 0 < y < 1582 is a leap year if and only if

            • y is divisible by 4.
            2、關于公歷中有11天的缺失
             11 days are eliminated starting September 3, 1752 in order for people not to rewrite history

            下面就是常規(guī)的做法了。。
            統(tǒng)計截止到每一年有多少天,然后將所有的lucky month和good month都找出來,順序存放在數(shù)組中,查詢的時候二分減一下就可以了~
            代碼:
             1 # include <iostream>
             2 using namespace std;
             3 int o[]={31,28,31,30,31,30,31,31,30,31,30,31},l[]={31,29,31,30,31,30,31,31,30,31,30,31};
             4 int y[10001];
             5 # include <vector>
             6 # include <algorithm>
             7 # define MON 730124
             8 # define FRI 730121
             9 # define SAT 730122
            10 # define SUN 730123
            11 vector<int> lucky,good;
            12 int main()
            13 {
            14     //init
            15     for(int i=1;i<12;i++)
            16       o[i]+=o[i-1],l[i]+=l[i-1];
            17     y[0]=0;
            18     for(int i=1;i<10000;i++)
            19     {
            20       if(i<1582&&i%4==0||i>1582&&(i%4==0&&i%100!=0||i%400==0)||i==1700)
            21           y[i]=y[i-1]+l[11];
            22       else
            23           y[i]=y[i-1]+o[11];
            24       if(i==1752) y[i]-=11;
            25     }
            26    for(int i=1;i<10000;i++)
            27    {
            28          
            29         int *m;
            30         if(i<1582&&i%4==0||i>1582&&(i%4==0&&i%100!=0||i%400==0)) m=l;
            31         else m=o;
            32         if(i==1752)
            33         {
            34           for(int j=8;j<12;j++) m[j]-=11;
            35         } 
            36         if((y[i-1]+1-MON)%7==0||(y[i-1]+1-SAT)%7==0||(y[i-1]+1-SUN)%7==0) good.push_back(i*12+1);
            37         if((y[i-1]+o[0]-FRI)%7==0||(y[i-1]+o[0]-SAT)%7==0||(y[i-1]+o[0]-SUN)%7==0) lucky.push_back(i*12+1);
            38         for(int j=1;j<12;j++)
            39         {
            40            if((y[i-1]+1+m[j-1]-MON)%7==0||(y[i-1]+1+m[j-1]-SAT)%7==0||(y[i-1]+1+m[j-1]-SUN)%7==0) good.push_back(i*12+j+1);
            41            if((y[i-1]+m[j]-FRI)%7==0||(y[i-1]+m[j]-SAT)%7==0||(y[i-1]+m[j]-SUN)%7==0) lucky.push_back(i*12+j+1);
            42         }     
            43         if(i==1752)
            44         {
            45           for(int j=8;j<12;j++) m[j]+=11;
            46         } 
            47    }
            48    int n;
            49    cin>>n;
            50    while(n--)
            51    {
            52       int y1,m1,y2,m2;
            53       cin>>y1>>m1>>y2>>m2;
            54       cout<<upper_bound(lucky.begin(),lucky.end(),y2*12+m2)-lower_bound(lucky.begin(),lucky.end(),y1*12+m1)<<" "<<upper_bound(good.begin(),good.end(),y2*12+m2)-lower_bound(good.begin(),good.end(),y1*12+m1)<<endl;
            55    }
            56    //system("pause");
            57    return 0;
            58 }
            59 


            posted on 2011-01-06 00:14 yzhw 閱讀(205) 評論(0)  編輯 收藏 引用 所屬分類: others

            <2010年11月>
            31123456
            78910111213
            14151617181920
            21222324252627
            2829301234
            567891011

            導航

            統(tǒng)計

            公告

            統(tǒng)計系統(tǒng)

            留言簿(1)

            隨筆分類(227)

            文章分類(2)

            OJ

            最新隨筆

            搜索

            積分與排名

            最新評論

            閱讀排行榜

            国产2021久久精品| 国产精品成人久久久久三级午夜电影 | 少妇人妻88久久中文字幕| 久久精品国产亚洲αv忘忧草| 国产成人精品久久| 中文精品久久久久国产网址| 久久久久99精品成人片三人毛片 | 久久99精品国产自在现线小黄鸭 | 欧美一区二区三区久久综 | 久久久久久噜噜精品免费直播| 婷婷久久综合九色综合绿巨人| 久久精品国产99国产精品澳门| 国内精品伊人久久久久影院对白| 狠狠色综合网站久久久久久久高清| 国产精品一区二区久久| 久久亚洲精品无码VA大香大香| 久久96国产精品久久久| 性做久久久久久久| 色诱久久av| 久久国产精品一区| 77777亚洲午夜久久多喷| 国产亚洲精久久久久久无码77777 国产亚洲精品久久久久秋霞 | 99精品久久精品一区二区| 久久伊人五月天论坛| 日本久久久精品中文字幕| 国产精品久久波多野结衣| 亚洲精品乱码久久久久久蜜桃不卡| 精品久久久久久无码中文字幕| 97久久超碰国产精品旧版| 久久久久久无码Av成人影院| yy6080久久| 无码任你躁久久久久久老妇App| 人妻少妇精品久久| 亚洲Av无码国产情品久久| 久久男人中文字幕资源站| 久久久久国产一区二区三区| 久久久黄片| 免费久久人人爽人人爽av| 欧美午夜精品久久久久免费视 | 精品人妻久久久久久888| 久久w5ww成w人免费|