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

2021-10-12 10:20:55 字數 1037 閱讀 9334

題目 1520: [藍橋杯][演算法提高vip]開燈遊戲

時間限制: 1sec 記憶體限制: 128mb 提交: 499 解決: 241

題目描述

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

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

具體如下:

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

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

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

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

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

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

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

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

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

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

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

樣例輸入

無樣例輸出

000001011

000001110

000001111

#include

#include

#include

#include

#include

#include

using

namespace std;

bool

check

(int k,

int i)

bool deng[10]

;int cnt;

intmain()

}}int light=0;

for(

int j=

1;j<=

9;j++)if

(light==4)

cout

}

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

題目描述 有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開啟 ...