遞推 AcWing 95 費解的開關

2021-10-25 12:40:36 字數 723 閱讀 7632

思路:

列舉第一行的所有情況

列舉完第一行後,固定住第一行,此時第二行按哪個按鈕是確定的。假設第一行某盞燈是0,那麼需要按第二行對應的燈泡來改變第一行。

同理,操作第三行和第四行

遍歷第五行看看是否都為1。如果都為1,則達到目標。

#include

#include

using

namespace std;

char g[10]

[10];

int dirx[5]

=;int diry[5]

=;void

turn

(int x,

int y)

}int

work()

}for

(int i =

0; i <

4; i ++)}

}for

(int j =

0; j <

5; j ++)}

if(is_successful && minres > res)

memcpy

(g, backup,

sizeof backup);}

if(minres >

6) minres =-1

;return minres;

}int

main()

return0;

}

AcWing 95 費解的開關(遞推)

題目 include include include include using namespace std const int n 6 char g n n backup n n backup用於儲存,複製原陣列 int dx 5 dy 5 用於方位轉化 void turn int x,int y...

acwing 95 費解的開關

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

AcWing 95 費解的開關

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