P2361 yyy棋(博弈論 貪心 模擬)

2022-02-28 17:12:43 字數 765 閱讀 6986

這個題看上去本來不好處理,然而善意的題面已經基本告訴你做法了,小時候玩的那個遊戲就是**的核心。動動腦子想想,如果長和寬的積是奇數,那麼一定要先手,如果是偶數,那麼後手就會獲勝。

好了,那麼怎麼處理對稱情況呢,隨便畫乙個小棋盤試一試,很容易得出是x-i+1和m-y+1。這之後就是顏色的問題了,因為題目有顏色的限制和對方耍賴這一操作,所以我們每一次放棋子的顏色也有要求。

再畫乙個小棋盤模擬一下,容易得出是偶數時要放不一樣的,奇數時放一樣的。

#include#include

#include

#include

#include

#define re register

#define wc 0.0000000001

using

namespace

std;

int n,m,map[11][11],t,x,a[100001

],y,c,cc;

intmain()

map[x][y]=cc;

cout

<1

<<"

"<1

<<"

"map[n-x+1][m-y+1]=cc;}}

else

map[x][y]=cc;

cout

<1

<<"

"<1

<<"

"<<(c^1)

); }

}}

題解 洛谷P2361 yyy棋(模擬)

一開始百思不得其解,但看到提示說核心 只有6行,再加上題目說一定有取勝的情況,看了看站長的解釋,思路還是比較清晰的。注意把buwanle的情況刪掉。不然會莫名其妙地掛 include include includeusing namespace std int a,b int map 20 20 i...

博弈論 P1288 取數遊戲II

傳送門 有乙個取數的遊戲。初始時,給出乙個環,環上的每條邊上都有乙個非負整數。這些整數中至少有乙個0。然後,將一枚硬幣放在環上的乙個節點上。兩個玩家就是以這個放硬幣的節點為起點開始這個遊戲,兩人輪流取數,取數的規則如下 1 選擇硬幣左邊或者右邊的一條邊,並且邊上的數非0 2 將這條邊上的數減至任意乙...

洛谷 P4136 誰能贏呢? 博弈論

小明和小紅經常玩乙個博弈遊戲。給定乙個n n的棋盤,乙個石頭被放在棋盤的左上角。他們輪流移動石頭。每一回合,選手只能把石頭向上,下,左,右四個方向移動一格,並且要求移動到的格仔之前不能被訪問過。誰不能移動石頭了就算輸。假如小明先移動石頭,而且兩個選手都以最優策略走步,問最後誰能贏?輸入格式 輸入檔案...