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

            QuXiao

            每天進(jìn)步一點(diǎn)點(diǎn)!

              C++博客 :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
              50 隨筆 :: 0 文章 :: 27 評(píng)論 :: 0 Trackbacks
                一開(kāi)始看還以為是一道博弈的題目,再仔細(xì)看才發(fā)現(xiàn)并不是博弈,也不是很難。大致意思是:有n堆石子,第i堆有Ki個(gè)石子,每輪一方可以從任意堆中取出一個(gè)或多個(gè)石子,所有石子都被取光時(shí),游戲也結(jié)束了,那個(gè)最后一輪拿走石子的人就是勝利者。問(wèn)你有多少種方法使對(duì)方處于必?cái)〉木置?。題目并不難,是因?yàn)轭}目中已經(jīng)告訴你了產(chǎn)生必?cái)【置娴臈l件:如果所有堆的石子數(shù)的異或和為0,那么處于此局面的人就必?cái) ?br>    因?yàn)槊看沃荒軓囊粋€(gè)堆中取石子,所以只要對(duì)于每個(gè)堆i,先求出其他所有堆的異或和temp,再看0~Ki-1與這個(gè)異或和再進(jìn)行異或是否為0,只要為0就得到一種勝利的方法。自己先是想枚舉0~Ki-1,與temp進(jìn)行異或。后來(lái)感覺(jué)沒(méi)有必要,只要Ki>temp就可以了,因?yàn)槿魪亩裪中取出x個(gè)石子,Ki-x異或temp==0 <==> Ki-x==temp,只要Ki>temp,就存在Ki-x==temp。

            #include <cstdio>

            #define PILE 1001

            __int64 stone[PILE], test;       //test為所有石子數(shù)的異或和
            int piles;

            bool Input ()
            {
                scanf("%d", &piles);
                if ( piles == 0 )
                    return false;
               
                int i;
                for (i=0; i<piles; i++)
                    scanf("%I64d", &stone[i]);
                return true;
            }

            void Solve ()
            {
                int i, ans;
                __int64 temp;
                test = 0;
                ans = 0;
                for (i=0; i<piles; i++)
                    test ^= stone[i];
               
                if ( test != 0 )
                {
                    for (i=0; i<piles; i++)
                    {
                        temp = test ^ stone[i];      //再與stone[i]做一次異或,相當(dāng)于除stone[i]對(duì)其他所有堆的石子進(jìn)行異或

                        if ( stone[i] > temp )
                            ans++;
                    }
                }
                printf("%d\n", ans);
            }

            int main ()
            {
                while ( Input() )
                {
                    Solve();
                }
               
                return 0;
            }


            posted on 2007-12-07 21:41 quxiao 閱讀(729) 評(píng)論(4)  編輯 收藏 引用 所屬分類: ACM

            評(píng)論

            # re: PKU2975 Nim 2008-05-15 08:51 肖憲華
            照你的代碼寫(xiě)的,怎么我的就提交不了呢?
            求助,代碼如下
            #include<stdio.h>
            int main()
            {
            int n,i,k;
            long long int stone[1001],t,p;
            while(1)
            {
            scanf("%d",&n);
            if(n==0) break;
            for(i=0,t=0;i<n;i++)
            {
            scanf("%lld",&stone[i]);
            t^=stone[i];
            }
            k=0;
            if(t!=0)
            {
            for(i=0;i<n;i++)
            {
            p=t^stone[i];
            if(stone[i]>t)
            k++;
            }
            }
            printf("%d\n",k);
            }
            return 0;
            }


              回復(fù)  更多評(píng)論
              

            # re: PKU2975 Nim 2008-05-15 09:01 肖憲華
            怎么代碼傳上去,格式亂了呢,我在傳遍吧,因?yàn)槭钦漳銓?xiě)的,注釋我沒(méi)寫(xiě)了,見(jiàn)諒。呵呵
            #include<stdio.h>
            int main()
            {
            int n,i,k;
            long long int stone[1001],t,p;
            while(1)
            {
            scanf("%d",&n);
            if(n==0) break;
            for(i=0,t=0;i<n;i++)
            {
            scanf("%lld",&stone[i]);
            t^=stone[i];
            }
            k=0;
            if(t!=0)
            {
            for(i=0;i<n;i++)
            {
            p=t^stone[i];
            if(stone[i]>t)
            k++;
            }
            }
            printf("%d\n",k);
            }
            return 0;
            }
              回復(fù)  更多評(píng)論
              

            # re: PKU2975 Nim 2008-05-16 09:38 肖憲華
            這么沒(méi)人提點(diǎn)下?。浚浚??  回復(fù)  更多評(píng)論
              

            # re: PKU2975 Nim 2009-07-14 17:23 WinterLegend
            @肖憲華
            你代碼打錯(cuò)了吧 !
            你的 p 是干嘛用的。。。。  回復(fù)  更多評(píng)論
              

            久久综合精品国产一区二区三区| 久久婷婷色综合一区二区| 久久久精品国产| 亚洲国产精品一区二区久久hs| 久久亚洲精品成人无码网站| 国内精品人妻无码久久久影院 | 久久国产欧美日韩精品| 狠狠色丁香婷婷综合久久来| 久久久受www免费人成| 午夜精品久久久久久毛片| 国产激情久久久久影院老熟女| 日本久久久久亚洲中字幕| 999久久久免费国产精品播放| 久久婷婷午色综合夜啪| 99久久精品毛片免费播放| 久久人妻少妇嫩草AV无码蜜桃| 亚洲AV无码久久精品成人| 久久天天躁狠狠躁夜夜2020| 亚洲中文字幕无码久久2020 | 国产精品美女久久久| 日本久久中文字幕| 99久久精品毛片免费播放| 久久精品国产男包| 欧美麻豆久久久久久中文| 99久久国产亚洲高清观看2024| 中文精品久久久久人妻不卡| 热久久国产欧美一区二区精品| 国产精品久久久久久福利69堂| 久久久久久亚洲精品影院| 久久精品亚洲欧美日韩久久| 精品久久久久久| 久久久久国产精品| 久久本道伊人久久| 久久婷婷久久一区二区三区| 久久精品国产亚洲av影院| 久久婷婷国产综合精品| 国产毛片欧美毛片久久久| 亚洲中文字幕无码一久久区| 亚洲国产另类久久久精品小说 | 亚洲国产精品成人AV无码久久综合影院| 国产高潮国产高潮久久久|