Godsend(博弈)
生活随笔
收集整理的這篇文章主要介紹了
Godsend(博弈)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
VJ鏈接
題意:給出長度為n的數(shù)組,兩個人做游戲。第一個人每次只能取出和為奇數(shù)的連續(xù)子串,第二個人每次只能取出和為偶數(shù)的連續(xù)子串。每人取出之后,剩余子串相互連接。最后誰無法行動失敗。
思路:根據(jù)奇數(shù)偶數(shù)的性質(zhì)解題。1.首先如果所有數(shù)之和為奇數(shù),第一個人直接獲勝。 2.所有數(shù)字之和為偶數(shù),但是這些數(shù)中沒有奇數(shù)子串,也就是說沒有奇數(shù),此時第二個人獲勝。 3.所有數(shù)字之和為偶數(shù),并且數(shù)組中存在奇數(shù),則第一個人必勝。 因為:此時第一個人拿走這個奇數(shù)之后,剩下的所有數(shù)之和必然為奇數(shù)(偶數(shù)-奇數(shù)=奇數(shù)),若剩下的數(shù)字中存在偶數(shù)子串,則第二個人堅持一回合(若沒偶數(shù),小二出局),然后,由于剩余所有數(shù)字之和為奇數(shù),所以第一個人一次拿完(小二仍然出局)。
代碼
#include<stdio.h> int main() {int t,f=0,x;long long s=0;scanf("%d",&t);while(t--){scanf("%d",&x);s+=x;if(x&1) f=1; //數(shù)組中存在奇數(shù)}if((!(s&1)&&(f))||s&1)printf("First\n");elseprintf("Second\n");return 0; }總結
以上是生活随笔為你收集整理的Godsend(博弈)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《每天最重要的2小时》读书笔记PPT模板
- 下一篇: 鸿蒙钉钉app,钉钉鸿蒙版下载_钉钉手机