算法入門(5)熄燈問題

參考該鏈接和B站上的視頻做一些簡單的拓展掀淘。
題目描述:
有一個5行6列的按鈕矩陣冷溃,矩陣中每一個位置都有一個燈和一個按鈕虑稼。
當按下某個位置下按鈕后該位置和該位置周圍(上,下菠剩,左,右)的燈的狀態(tài)都會改變依次耻煤。
如果該位置在矩陣邊上只會改變周圍3個位置燈的狀態(tài)具壮,如果在角上只會改變周圍兩個位置燈的狀態(tài)。如下圖所示(復(fù)制北大mooc上的圖):

按中間的那個按鈕哈蝇,周圍四個位置的燈狀態(tài)都發(fā)生了改變棺妓。

問題:給定矩陣的初始狀態(tài),求一種按鈕的方案能夠?qū)⒕仃囍兴械臒粝纭?br> 輸入:
一個5*6的矩陣代表著燈的初始狀態(tài)炮赦。(其中1表示燈亮著狀態(tài)怜跑,0表示表示燈熄滅狀態(tài))
0 1 1 0 1 0
1 0 0 1 1 1
0 0 1 0 0 1
1 0 0 1 0 1
結(jié)果:
將矩陣軸的按鈕按照以下方案進行操作能夠讓所有的燈熄滅。(其中 1表示按下該按鈕吠勘,0標注無須操作)
1 0 1 0 0 1
1 1 0 1 0 1
0 0 1 0 1 1
1 0 0 1 0 0
0 1 0 0 0 0

解題思路:
首先這是一道比較復(fù)雜的枚舉題目性芬。首先要根據(jù)已知推測隱含的條件峡眶。
1.一個位置燈的狀態(tài)不僅受該位置按鈕的影響也受周圍按鈕的影響。
2.每一個位置的按鈕狀態(tài)只有0未操作和1操作兩種狀態(tài)植锉。如果對同一個位置按鈕操作兩次辫樱,操作結(jié)果抵消。相當于未對該位置的按鈕進行操作汽煮。因此對一個位置的按鈕的操作只有兩種狀態(tài)搏熄。
3.一共有5*6=30個按鈕如果我們枚舉出對按鈕操作的所有可能情況是否可以通過其操作后的結(jié)果去判斷該情況是否可以讓所有的燈全部熄滅。
4.如果上述3是準確的話是否還有其他方法去找讓全部燈熄滅的方案暇赤。
5.在這里我們不妨這樣考慮一下啊心例,1.首先第一行一共有6個按鈕我們先對這六個按鈕的操作進行假設(shè)一共能得到64個操作方案。通過這64個操作方案我們能夠得到64個操作后的結(jié)果鞋囊。這時候如果第一排還有燈沒有熄滅止后,又因為我們已經(jīng)對第一排的按鈕執(zhí)行過了相應(yīng)的操作,這時候如果我們想關(guān)閉第一排的燈的話只能通過第二排的按鈕進行操作溜腐。對第二排操作完成后译株,如果想要關(guān)閉第二排的燈只能通過第三排的按鈕進行操作....一直到操作到第五排。如果在操作完第五排后所有燈熄滅了挺益,那么這個方案就是可行的歉糜,如果第五排未關(guān)閉完,那么該方案不可行望众。
在5 我們需要兩個操作:

  1. press[r+1][c]=(puzzle[r][c]+press[r][c]+press[r-1][c]+press[r][c-1]+press[r][c+1]) % 2(press是按鈕操作矩陣匪补,puzzle是初始狀態(tài)矩陣。這個式子的含義是:第r+1行第c列按鈕是否需要按下烂翰,根據(jù)該位置燈的初始狀態(tài)和該位置前邊夯缺,后邊,左右和右邊的按鈕對該位置的操作去判斷甘耿。換句話說也就是該位置的燈燈狀態(tài)由一個初始狀態(tài)和前左右踊兜,本身四個位置的按鈕對該位置燈的操作決定。因此我們需要先通過前左右和本身四個位置的按鈕對r行c列位置燈操作后的結(jié)果佳恬。然后如果計算出為1的話我們需要通過 press[r+1][c]關(guān)閉它捏境,為0的話不用管了。)
  2. if (press[5][c-1]+press[5][c]+press[5][c+1]+press[4][c])%2!=puzzle[5][c](如果第五行c列的初始狀態(tài)和第五行c列周圍操作疊加操作不一樣殿怜,那么燈就不會完全被熄滅典蝌。如第五行c列燈為1,四個操作疊加狀態(tài)為(1+1+1+1)%2=0,則第五行第c列的燈未被關(guān)閉头谜。 )
  3. emmmm骏掀。。。截驮。python代碼還沒寫出來笑陈。等等再放吧。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末葵袭,一起剝皮案震驚了整個濱河市涵妥,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌坡锡,老刑警劉巖蓬网,帶你破解...
    沈念sama閱讀 211,194評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異鹉勒,居然都是意外死亡帆锋,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評論 2 385
  • 文/潘曉璐 我一進店門禽额,熙熙樓的掌柜王于貴愁眉苦臉地迎上來锯厢,“玉大人,你說我怎么就攤上這事脯倒∈导” “怎么了?”我有些...
    開封第一講書人閱讀 156,780評論 0 346
  • 文/不壞的土叔 我叫張陵藻丢,是天一觀的道長剪撬。 經(jīng)常有香客問我,道長悠反,這世上最難降的妖魔是什么婿奔? 我笑而不...
    開封第一講書人閱讀 56,388評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮问慎,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘挤茄。我一直安慰自己如叼,他們只是感情好,可當我...
    茶點故事閱讀 65,430評論 5 384
  • 文/花漫 我一把揭開白布穷劈。 她就那樣靜靜地躺著笼恰,像睡著了一般。 火紅的嫁衣襯著肌膚如雪歇终。 梳的紋絲不亂的頭發(fā)上社证,一...
    開封第一講書人閱讀 49,764評論 1 290
  • 那天,我揣著相機與錄音评凝,去河邊找鬼追葡。 笑死,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的宜肉。 我是一名探鬼主播匀钧,決...
    沈念sama閱讀 38,907評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼谬返!你這毒婦竟也來了之斯?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,679評論 0 266
  • 序言:老撾萬榮一對情侶失蹤遣铝,失蹤者是張志新(化名)和其女友劉穎佑刷,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體酿炸,經(jīng)...
    沈念sama閱讀 44,122評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡瘫絮,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,459評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了梁沧。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片檀何。...
    茶點故事閱讀 38,605評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖廷支,靈堂內(nèi)的尸體忽然破棺而出频鉴,到底是詐尸還是另有隱情,我是刑警寧澤恋拍,帶...
    沈念sama閱讀 34,270評論 4 329
  • 正文 年R本政府宣布垛孔,位于F島的核電站,受9級特大地震影響施敢,放射性物質(zhì)發(fā)生泄漏周荐。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,867評論 3 312
  • 文/蒙蒙 一僵娃、第九天 我趴在偏房一處隱蔽的房頂上張望概作。 院中可真熱鬧,春花似錦默怨、人聲如沸讯榕。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,734評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽愚屁。三九已至,卻和暖如春痕檬,著一層夾襖步出監(jiān)牢的瞬間霎槐,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,961評論 1 265
  • 我被黑心中介騙來泰國打工梦谜, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留丘跌,地道東北人袭景。 一個月前我還...
    沈念sama閱讀 46,297評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像碍岔,于是被迫代替她去往敵國和親浴讯。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,472評論 2 348

推薦閱讀更多精彩內(nèi)容

  • 專業(yè)考題類型管理運行工作負責人一般作業(yè)考題內(nèi)容選項A選項B選項C選項D選項E選項F正確答案 變電單選GYSZ本規(guī)程...
    小白兔去釣魚閱讀 8,977評論 0 13
  • 選擇題部分 1.(),只有在發(fā)生短路事故時或者在負荷電流較大時,變流器中才會有足夠的二次電流作為繼電保護跳閘之用蔼啦。...
    skystarwuwei閱讀 12,828評論 0 7
  • ¥開啟¥ 【iAPP實現(xiàn)進入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個線程榆纽,因...
    小菜c閱讀 6,365評論 0 17
  • 1.平時通過大量的閱讀,把好的內(nèi)容通過卡片式進行記錄下來捏肢,尤其是金句 2.寫作時要有結(jié)構(gòu)奈籽,也就是說邏輯要清晰,能讓...
    小魏有話說閱讀 131評論 0 0
  • 本想寫一封信寄語過去 卻害怕喚起塵封的記憶 如水的回憶會淹沒將來 也將波及現(xiàn)在 無需說太多 又何必想太多 我們依舊...
    言之閱讀 187評論 0 0