POJ1753 flip Game翻轉棋盤

2021-07-16 09:20:54 字數 1085 閱讀 4771

/*題目大意:有乙個4*4的方格,每個方格中放一粒棋子,這個棋子一面是白色,一面是黑色。

遊戲規則為每次任選16顆中的一顆,把選中的這顆以及它四周的棋子一併反過來,當所有的棋子都是同乙個顏色朝上時,

遊戲就完成了。現在給定乙個初始狀態,要求輸出能夠完成遊戲所需翻轉的最小次數,

如果初始狀態已經達到要求輸出0。如果不可能完成遊戲,輸出impossible。

sample input

bwwb

bbwb

bwwb

bwww

sample output

4 */

思路:

有可能沒翻的時候就是全部一樣的有可能翻一次就全都一樣了,或許兩次…最多是翻16次類似組合數

分情況:

翻0次的時候判斷一下

翻1次,是翻哪乙個。。。。類推

每次翻過之後還要翻回來

因為乙個地方翻2次偶數次和原來的情況一樣翻奇數次是改變原來的樣子。

dfs()函式中的n是翻棋盤的個數,num是翻得第幾個棋盤

#include

char s[4][4];

int flag,sum=0;

int change(int i)

int judge()

}return1;}

int dfs(int n,int num)

return

0; }

for(int i=num;i<16;i++)

return0;}

int main()

getchar();

}/* for(i=0;i<4;i++)

printf("\n");

}*/flag=0;

for(i=0;i<16;i++)

}// printf("%d\n",sum);

if(flag)

printf("%d\n",i);

else

printf("impossible\n");

return

0;}

poj 1753 Flip Game 高斯消元

因為目標狀態是全白或全黑,所以進行兩次高斯消元,每次若有自由變元的話要列舉自由變元求得最優解。哇哦,怎麼就寫了200 行。include include include include include include include include include include include i...

poj1753Flip Game 基本演算法之列舉

題意 有4 4的矩陣,每個方格都有乙個兩色黑白的棋子,每個棋子都可以任意翻轉,一次翻轉操作 上下左右以及自己本身5個棋子發生取反。問要將整個棋盤都置為全白或者全黑,至少要翻轉幾次。思路 資料範圍非常小,總共16顆棋子,每種棋子都有2中操作,翻與不翻 注意這個翻轉操作的執行順序對棋盤沒有影響 那麼總共...

POJ 1753 Flip Game 二進位制列舉

題型 列舉 題意 4 4的棋盤上面放了16盞燈,有黑有亮。每次按乙個燈,會改變本身及其上下左右四個燈的狀態,即黑變白或白變黑,問最少需要按幾次,可以將所有燈變為同一種狀態,不能變則輸出 impossible 分析 如果按個多個燈,可以發現,這些操作的順序是互不影響的。對於每個燈,按一次翻轉,再按一次...