• <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>

            /*3.變態比賽規則
            為了促進各部門員工的交流,百度舉辦了一場全公司范圍內的“拳皇”(百度內部最流行的格斗游戲)友誼賽,負責組織這場比賽的是百度的超級“拳皇”迷W.Z。W.Z不想用傳統的淘汰賽或者循環賽的方式,而是自己制定了一個比賽規則。


            由于一些員工(比如同部門或者相鄰部門員工)平時接觸的機會比較多,為了促進不同部門之間的交流,
            W.Z希望員工自由分組。不同組之間的每兩個人都會進行一場友誼賽而同一組內的人之間不會打任何比賽。


            比如4個人,編號為1~4,如果分為兩個組并且1,2一個組,3,4一個組,那么一共需要打四場比賽:
            1 vs 3,1 vs 4,2 vs 3,2 vs 4。 而如果是1,2,3一組,4單獨一組,那么一共需要打三場比賽:
            ????? 1 vs 4,2 vs 4,3 vs 4。


            很快W.Z意識到,這樣的比賽規則可能會讓比賽的場數非常多。W.Z想知道如果有N個人,
            通過上面這種比賽規則,總比賽場數有可能為K場嗎?比如3個人,如果只分到一組則不需要比賽,
            如果分到兩組則需要2場比賽,如果分為三組則需要3場比賽。但是無論怎么分都不可能恰需要1場比賽。


            相信作為編程高手的你一定知道該怎么回答這個問題了吧? 那么現在請你幫助W.Z吧。


            輸入要求:
            每行為一組數據,包含兩個數字 N, K(0<N<=500, K>=0)。例:
            2 0
            2 1
            3 1
            3 2

            ?

            輸出要求:
            對輸入的N,K 如果N個員工通過一定的分組方式可以使比賽場數恰好為K,則輸出"YES",否則輸出"NO"
            (請全部使用大寫字母),每組數據占一行。例:
            YES
            YES
            NO
            YES

            */
            /*
            算法分析:采用遞歸的方法,原理較簡單,大家看源碼即可。
            */

            /*
            ? Name:
            ? Copyright:
            ? Author:
            ? Date: 27-05-06 15:37
            ? Description:
            */

            #include <iostream>
            #include<fstream>
            #include <time.h>

            using namespace std;

            const int MAX = 100;
            void Readata(const char *filename);
            bool check(long n, long k);

            int main()
            {
            ?time_t startTime;
            ?time_t endTime;
            ?time(&startTime);

            ?Readata("in.txt");

            ?time(&endTime);
            ?cout << difftime(endTime, startTime) << endl;

            ?getchar();
            ?return 0;
            }

            void Readata(const char *filename)
            {
            ????? fstream in(filename);
            ????? if (!in)
            ??????????? return ;?? //結束程序執行

            ????? while (!in.eof())
            ????? {
            ??????????? long data[2];

            ??????????? in >> data[0];
            ??????????? in >> data[1];
            ??????????? //cout << data[0] << ' ' << data[1] << endl;

            ??????????? if (check(data[0], data[1]))
            ????????????????? cout << "YES" << endl;
            ??????????? else
            ????????????????? cout << "NO" << endl;
            ????? }

            ??? in.close(); //關閉文件
            }
            bool check(long n, long k)
            {
            ??? bool flag = false;
            ??? int i;
            ??? if(k == 0) //可能? 。。。1
            ??????? return true;
            ??? if(n==0 && k || k<0)? //不可能 。。。2
            ??????? return false;
            ??? for(i=1; i<n && !flag; i++) //i表示將被減掉的小組的人數,每少一個由i個人組成的組就會少(n-i) * i場比賽
            ??????? flag = check(n-i,k - (n-i) * i);? //不斷的減少小組數和對應減少的比賽次數,直到出現1或2的情況 (出現可能的情況也會終止分析)
            ??? return flag;
            }

            Posted on 2006-05-30 13:56 夢想飛揚 閱讀(595) 評論(1)  編輯 收藏 引用

            Feedback

            # re: 我解百度之星題目之" 變態比賽規則 "  回復  更多評論   

            2006-06-04 20:57 by ???
            貴人的時間復雜度是不是有點高啊
            我覺得會超時!!!
            欧美日韩中文字幕久久伊人| 久久久久国产日韩精品网站| 精品999久久久久久中文字幕| 久久久久人妻一区精品色| 久久免费视频观看| 2021国产精品午夜久久| www性久久久com| 久久夜色精品国产www| 久久人人爽人人爽人人av东京热 | 久久99精品免费一区二区| 欧美久久一区二区三区| 99精品久久久久中文字幕| 久久久久久国产a免费观看黄色大片| 久久久久成人精品无码中文字幕| 久久久久婷婷| 97久久精品人人做人人爽| 亚洲欧洲日产国码无码久久99| 久久久久亚洲AV无码专区桃色| 国产精品无码久久综合 | 久久久久久午夜精品| 久久99精品免费一区二区| 亚洲狠狠综合久久| 国产韩国精品一区二区三区久久| 精品久久久久久中文字幕大豆网| 久久亚洲中文字幕精品一区| 国产成人综合久久精品尤物| 国产情侣久久久久aⅴ免费| 久久天堂AV综合合色蜜桃网 | 久久99精品九九九久久婷婷| 91精品国产高清久久久久久国产嫩草| 少妇人妻88久久中文字幕| 久久精品国产日本波多野结衣| 中文精品99久久国产| 久久精品国产亚洲AV蜜臀色欲| 婷婷久久综合| 青青青青久久精品国产h久久精品五福影院1421 | 无码人妻精品一区二区三区久久久 | 青青草原综合久久| 成人a毛片久久免费播放| 久久99亚洲综合精品首页| 欧美久久亚洲精品|