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

2021-10-22 17:20:21 字數 1290 閱讀 5761

題目描述

有9盞燈與9個開關,編號都是1~9。

每個開關能控制若干盞燈,按下一次會改變其控制的燈的狀態(亮的變成不亮,不亮變成亮的)。

具體如下:

第乙個開關控制第二,第四盞燈;

第二個開關控制第一,第三,第五盞燈;

第三個開關控制第二,第六盞燈;

第四個開關控制第一,第五,第七盞燈;

第五個開關控制第二,第四,第六,第八盞燈;

第六個開關控制第三,第五,第九盞燈;

第七個開關控制第四,第八盞燈;

第八個開關控制第五,第七,第九盞燈;

第九個開關控制第六,第八盞燈。

開始時所有燈都是熄滅的,開關是關閉著的。要求按下若干開關後,使得只有4盞燈亮著。輸入無

輸出輸出所有可能的方案,每行乙個方案,每一行有9個字元,從左往右第i個字元表示第i個開關的狀態(" 0" 表示關閉," 1" 表示開啟),按字典序輸出。下面的樣例輸出只是部分方案。

樣例輸入

無樣例輸出

000001011

000001110

000001111

解題思路:

直接模擬!!!

**如下:

#include

#include

using

namespace std;

const

int n =13;

int a[n]

;//燈,1為亮,0為暗

int press[n]

;//是否按,1為按,0為不按

void

check()

else

if(i ==2)

else

if(i ==3)

else

if(i ==4)

else

if(i ==5)

else

if(i ==6)

else

if(i ==7)

else

if(i ==8)

else

if(i ==9)

int cnt =0;

for(

int i =

1; i <=

9; i++)if

(cnt ==4)

cout << endl;}}

void

dfs(

int u)

for(

int i =

0; i <

2; i++)}

intmain()

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

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

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

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

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

感覺最近對dfs用的越來越熟,還是熟能生巧啊。這題採用dfs的方法,每盞燈考慮開或者不開 用0和1表示 要求考慮字典序,所以優先考慮不開。include using namespace std int light 10 0熄滅,1亮 int control 4 int key 10 0關閉,1開啟 ...