poj 1704 Georgia and Bob(階梯博弈)

來源:互聯網
上載者:User

這個問題可以看作是一種特殊的石子遊戲。以第二個範例為例:
1 5 6 7 9 12 14 17
第一個棋子不能向左移動了。第二個棋子可以向左移動3個格子。第三個棋子也不能移動了,以此類推,可以得到這樣一個數列:
0 3 0 0 1 2 1 2,第n個數字代表第n個棋子可以移動的步數。
考慮一下把第二個棋子向左移動一格的情況,原數列變為:
0 2 1 0 1 2 1 2
這不就是把“第二堆”石子移了一個到右邊的“第三堆”石子嗎?由此可以給出等價的遊戲新定義:
給定N堆石子,每堆裡面的石子個數都是非負的。每次可以把第i堆中的任意顆石子移動到第i + 1堆中(1 <= i < N),或者第N堆的石子扔掉任意顆。如果某人不能繼續操作則判負。

階梯博弈:http://blog.csdn.net/hlmfjkqaz/article/details/9612003

#include<iostream>#include<cstdio>#include<algorithm>using namespace std;#define N 1005int main(){    int t,i,j,a[N],n,s,b[N];    scanf("%d",&t);    while(t--)    {        scanf("%d",&n);        for(i=0;i<n;i++)           scanf("%d",&a[i]);        sort(a,a+n);        j=0;        for(i=n-1;i>0;i--,j++)        {           b[j]=a[i]-a[i-1]-1;        }        s=0;        b[n-1]=a[0]-1;        for(i=0;i<n;i+=2) s^=b[i];        if(s) puts("Georgia will win");        else puts("Bob will win");    }    return 0;}


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.