• <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 夢想飛揚 閱讀(588) 評論(1)  編輯 收藏 引用

            Feedback

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

            2006-06-04 20:57 by ???
            貴人的時間復雜度是不是有點高啊
            我覺得會超時!!!
            综合久久精品色| 成人免费网站久久久| 久久久久久免费视频| 亚洲AV无码1区2区久久| 国产999精品久久久久久| 亚洲国产一成久久精品国产成人综合| 久久久无码一区二区三区| 91精品国产综合久久婷婷| 婷婷久久综合九色综合九七| 久久精品中文字幕一区| 尹人香蕉久久99天天拍| 亚洲狠狠婷婷综合久久久久| 国产精品无码久久综合| 亚洲欧洲精品成人久久奇米网| 久久精品国产亚洲av麻豆色欲| 99久久精品免费观看国产| 久久久久人妻一区精品色| 久久久久久国产a免费观看黄色大片| 久久九九精品99国产精品| 亚洲国产天堂久久久久久| 久久国产精品免费一区| 久久久久久久尹人综合网亚洲| 色欲av伊人久久大香线蕉影院| 亚洲国产天堂久久久久久| 免费一级欧美大片久久网| 久久综合九色综合97_久久久| 久久久国产精品亚洲一区| 欧美精品久久久久久久自慰| 日本高清无卡码一区二区久久| 国产精品久久久久久久久久免费| 狠狠色婷婷综合天天久久丁香 | 亚洲精品午夜国产va久久| 久久亚洲av无码精品浪潮| 2020最新久久久视精品爱| 久久99国产精品99久久 | 久久丝袜精品中文字幕| 久久人人爽人人爽人人片AV麻豆| 久久精品中文字幕一区| 久久精品国产91久久麻豆自制 | 亚洲精品乱码久久久久久中文字幕 | 国产成人无码久久久精品一|