AcWing 95 費解的開關

2022-09-25 04:36:13 字數 1071 閱讀 6758

我們可以通過列舉第一行的每一種狀態,然後後一行的狀態只能由前面一行確定,這樣就可以找到對應的最小步數。

我的acwing裡的題解:

開始給我看懵了,一直不理解下面這行**

for(int i = 0; i < 5; i++)

if(op >> i & 1

)

#include #include 

using

namespace

std;

char g[5][5], backup[5][5

];int dx[5] = , dy[5] = ;

intn;

void turn(int x, inty)}

intmain()

}for(int i = 0; i < 4; i++)

for(int j = 0; j < 5; j++)

if(backup[i][j] == '0'

)

bool success = true

;

for(int i = 0; i < 5; i++)

if(backup[4][i] == '0'

) success = false

;

if(success && ans > cnt) ans =cnt;

}if(ans > 6) ans = -1

; printf(

"%d\n

", ans);

}return0;

}

acwing 95 費解的開關

時 空限制 1s 256mb 你玩過 拉燈 遊戲嗎?25盞燈排成乙個5x5的方形。每乙個燈都有乙個開關,遊戲者可以改變它的狀態。每一步,遊戲者可以改變某乙個燈的狀態。遊戲者改變乙個燈的狀態會產生連鎖反應 和這個燈上下左右相鄰的燈也要相應地改變其狀態。我們用數字 1 表示一盞開著的燈,用數字 0 表示...

AcWing 95 費解的開關

你玩過 拉燈 遊戲嗎?25盞燈排成乙個5x5的方形。每乙個燈都有乙個開關,遊戲者可以改變它的狀態。每一步,遊戲者可以改變某乙個燈的狀態。遊戲者改變乙個燈的狀態會產生連鎖反應 和這個燈上下左右相鄰的燈也要相應地改變其狀態。我們用數字 1 表示一盞開著的燈,用數字 0 表示關著的燈。下面這種狀態 101...

ACwing 95 費解的開關

你玩過 拉燈 遊戲嗎?25盞燈排成乙個5x5的方形。每乙個燈都有乙個開關,遊戲者可以改變它的狀態。每一步,遊戲者可以改變某乙個燈的狀態。遊戲者改變乙個燈的狀態會產生連鎖反應 和這個燈上下左右相鄰的燈也要相應地改變其狀態。我們用數字 1 表示一盞開著的燈,用數字 0 表示關著的燈。下面這種狀態 101...