藍橋杯 演算法提高 開燈遊戲 dfs

2021-10-23 03:22:48 字數 678 閱讀 8317

感覺最近對dfs用的越來越熟,還是熟能生巧啊。

這題採用dfs的方法,每盞燈考慮開或者不開(用0和1表示)。要求考慮字典序,所以優先考慮不開。

#include

using

namespace std;

int light[10]

;//0熄滅,1亮

int control[

4]=;

int key[10]

;//0關閉,1開啟

bool

check()

if(cnt==4)

return

true

;return

false;}

void

change

(int x)}}

void

dfs(

int x)

return;}

//忽略這乙個開關,這個開關不做處理 考慮下乙個

dfs(x+1)

;//開關開

key[x]=1

;change

(x);

dfs(x+1)

;//回溯

key[x]=0

;change

(x);

}int

main()

藍橋杯 演算法提高VIP 開燈遊戲 dfs

題目描述 有9盞燈與9個開關,編號都是1 9。每個開關能控制若干盞燈,按下一次會改變其控制的燈的狀態 亮的變成不亮,不亮變成亮的 具體如下 第乙個開關控制第二,第四盞燈 第二個開關控制第一,第三,第五盞燈 第三個開關控制第二,第六盞燈 第四個開關控制第一,第五,第七盞燈 第五個開關控制第二,第四,第...

藍橋杯 演算法提高 開燈遊戲

回溯加判斷,注意在改變燈的狀態的時候要用引用,要不然燈的值不會發生改變 然後在每次判斷輸出完之後要清空一下燈的狀態否則會出錯 include include using namespace std int k 10 int d 10 void change int i void judge else...

藍橋杯 演算法提高VIP 開燈遊戲

題目 1520 藍橋杯 演算法提高vip 開燈遊戲 時間限制 1sec 記憶體限制 128mb 提交 499 解決 241 題目描述 有9盞燈與9個開關,編號都是1 9。每個開關能控制若干盞燈,按下一次會改變其控制的燈的狀態 亮的變成不亮,不亮變成亮的 具體如下 第乙個開關控制第二,第四盞燈 第二個...