• <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 ???
            貴人的時間復雜度是不是有點高啊
            我覺得會超時!??!
            中文字幕乱码人妻无码久久| 久久久久久久人妻无码中文字幕爆 | 国内精品欧美久久精品| 久久99国产一区二区三区| 久久激情亚洲精品无码?V| 久久99精品久久久大学生| 国内精品伊人久久久久| 精品亚洲综合久久中文字幕| 国产一区二区三精品久久久无广告| 三级韩国一区久久二区综合| 亚洲午夜久久久久久噜噜噜| 国产免费福利体检区久久| 久久亚洲精品国产精品| 无码AV波多野结衣久久| 精品99久久aaa一级毛片| 欧洲成人午夜精品无码区久久 | 久久SE精品一区二区| 香港aa三级久久三级| 欧美喷潮久久久XXXXx| 亚洲人AV永久一区二区三区久久| 国产精品久久99| 久久精品国产亚洲AV电影| 久久久久久精品久久久久| 亚洲国产一成久久精品国产成人综合| 国内精品久久九九国产精品| 久久久久亚洲av无码专区| 综合久久国产九一剧情麻豆| 久久久久亚洲av成人无码电影| 国产精品久久久久影院色| 奇米影视7777久久精品| 久久久久亚洲精品天堂| 欧美精品久久久久久久自慰| 日本强好片久久久久久AAA| 亚洲一区精品伊人久久伊人| 欧美亚洲日本久久精品| 亚洲精品99久久久久中文字幕| 性做久久久久久久久老女人| 亚洲人成无码www久久久| 国产69精品久久久久APP下载 | 亚洲欧美日韩久久精品第一区| 久久久这里有精品|