51nod 1068 簡單博弈

2021-07-23 23:12:35 字數 799 閱讀 8236

思路

手動打表, n

1 : a出1 a勝;

2 : a出2 a勝;

3 : a只能出2的整數冪&&這個數<=3,所以只能出1,2;a出1的時候,b就是2的情況,b勝;a出2的時候,b就是1的情況,b勝;

4 : a只能出2的整數冪&&這個數<=3,所以只能出1,2,4;直接拿4,a勝;

5 : a只能出2的整數冪&&這個數<=3,所以只能出1,2,4;a出1的時候,b就是4的情況,b勝;a出2的時候,b就是3的情況,a勝;(只要出現a勝的情況,就是給a了。

6 : b勝(解釋略);

...最後會發現a不管怎麼取也不會達到3的倍數,所以a贏兩次後的第三次中,不可能取完以後,留給b是對方能贏(即a能贏)的陣式;

= =、感覺就是這樣了,前幾天寫了一題這樣的,今天又寫了這樣的,就是對於這個物件,之前肯定是簡單處理出來,然後之後的結果還是依賴前面的答案,以此類推,打表也方便;

#include #include #include #include using namespace std;

typedef long long ll;

const long long inf=0x3f3f3f3f;

const int n=1e3+10;

char s[n];

int main()

{ int t,n;

scanf("%d",&t);

while(t--)

{scanf("%s",s);

int len=strlen(s);

n=0;

for(int i=0;i

51nod 1068 簡單博弈

思路 手動打表,n1 a出1 a勝 2 a出2 a勝 3 a只能出2的整數冪 這個數 3,所以只能出1,2 a出1的時候,b就是2的情況,b勝 a出2的時候,b就是1的情況,b勝 4 a只能出2的整數冪 這個數 3,所以只能出1,2,4 直接拿4,a勝 5 a只能出2的整數冪 這個數 3,所以只能出...

51nod 1067 簡單博弈

臥槽,第一次自己推推推做出來的。對於1,那麼就是a取完就好 a 對於2,只能是a拿乙個 b 對於3和4,都是a拿完 a 對於5,靠向2,a取3,b只能1 a 對於6,a取乙個的話,b就是5的情況,b贏,取3個的話,b就是3的情況,b贏,取4個的話,b就是2的情況,a贏,所以a 對於7,a取乙個的話,...

51nod 1068 Bash遊戲 V3 博弈

1068 bash遊戲 v3 基準時間限制 1 秒 空間限制 131072 kb 分值 20 難度 3級演算法題 收藏關注有一堆石子共有n個。a b兩個人輪流拿,a先拿。每次拿的數量只能是2的正整數次冪,比如 1,2,4,8,16.拿到最後1顆石子的人獲勝。假設a b都非常聰明,拿石子的過程中不會出...