精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

遞推算法:令人費(fèi)解的開關(guān)『拉燈』

開發(fā) 前端 算法
游戲者改變一個(gè)燈的狀態(tài)會(huì)產(chǎn)生連鎖反應(yīng):和這個(gè)燈上下左右相鄰的燈也要相應(yīng)地改變其狀態(tài)。

[[411620]]

題目來源 AcWing[1]。

題目

你玩過“拉燈”游戲嗎?

盞燈排成一個(gè) 的方形。

每一個(gè)燈都有一個(gè)開關(guān),游戲者可以改變它的狀態(tài)。

每一步,游戲者可以改變某一個(gè)燈的狀態(tài)。

游戲者改變一個(gè)燈的狀態(tài)會(huì)產(chǎn)生連鎖反應(yīng):和這個(gè)燈上下左右相鄰的燈也要相應(yīng)地改變其狀態(tài)。

我們用數(shù)字 表示一盞開著的燈,用數(shù)字 表示關(guān)著的燈。

下面這種狀態(tài)

  1. 10111 
  2. 01101 
  3. 10111 
  4. 10000 
  5. 11011 

在改變了最左上角的燈的狀態(tài)后將變成:

  1. 01111 
  2. 11101 
  3. 10111 
  4. 10000 
  5. 11011 

再改變它正中間的燈后狀態(tài)將變成:

  1. 01111 
  2. 11001 
  3. 11001 
  4. 10100 
  5. 11011 

給定一些游戲的初始狀態(tài),編寫程序判斷游戲者是否可能在 步以內(nèi)使所有的燈都變亮。

輸入格式

第一行輸入正整數(shù) ,代表數(shù)據(jù)中共有 個(gè)待解決的游戲初始狀態(tài)。

以下若干行數(shù)據(jù)分為 組,每組數(shù)據(jù)有 行,每行 個(gè)字符。

每組數(shù)據(jù)描述了一個(gè)游戲的初始狀態(tài)。

各組數(shù)據(jù)間用一個(gè)空行分隔。

輸出格式

一共輸出 行數(shù)據(jù),每行有一個(gè)小于等于 的整數(shù),它表示對于輸入數(shù)據(jù)中對應(yīng)的游戲狀態(tài)最少需要幾步才能使所有燈變亮。

對于某一個(gè)游戲初始狀態(tài),若 步以內(nèi)無法使所有燈變亮,則輸出 。

數(shù)據(jù)范圍

輸入樣例:

  1. 00111 
  2. 01011 
  3. 10001 
  4. 11010 
  5. 11100 
  6.  
  7. 11101 
  8. 11101 
  9. 11110 
  10. 11111 
  11. 11111 
  12.  
  13. 01111 
  14. 11111 
  15. 11111 
  16. 11111 
  17. 11111 

輸出樣例:

  1. -1 

題解

首先有三點(diǎn)很重要的性質(zhì)需要說明:

  • 如果按哪些燈確定了,那么按這些燈的順序不重要,無論什么順序,結(jié)果都是相同的
  • 我們沒有必要按一盞燈兩次及以上,因?yàn)椋磧纱?,相?dāng)于沒按,按三次,相當(dāng)于按兩次+一次(也就是一次)

因此:

  • 因?yàn)榘礋舻捻樞虿恢匾覀兛梢韵劝训谝恍械臒舳及戳?/li>
  • 我們發(fā)現(xiàn),第一行想按的燈都按過之后,如果想要讓第一行全亮,那么我第二行只能有一種按法,就是按第一行不亮的燈的下面的燈(下面是例子)
  1. 第一行狀態(tài) 10011 (1代表亮的燈) 
  2. 第二行動(dòng)作 01100 (1代表按按鈕) 

那么,我們怎么保證第二行全亮呢?只能用第三行來解決!

那么,我們怎么保證最后一行(第五行)全亮呢?沒法保證!

我們發(fā)現(xiàn),如果第一行按法確定了,那么接下來二三四五行的按法和能不能全亮就確定了。

因此,對于任意一種輸入狀態(tài),我們把第一行 32 種按法全部遍歷一遍,看看哪些可以全亮(通過檢測第五行狀態(tài)),這些全亮的種有沒有操作次數(shù)小于等于 6 的。有的話,就返回這個(gè)操作數(shù),否則就返回 -1 唄。

代碼

  1. #include <iostream> 
  2. #include <cstring> 
  3. #include <algorithm> 
  4. using namespace std; 
  5.  
  6. const int N = 5 + 5;   // 加上 5 更保險(xiǎn) 
  7. // 注意接收時(shí)用字符串更方便,因?yàn)檩斎肓髅啃袥]有空格 
  8. char g[N][N];  // 記錄燈目前的情況 
  9.  
  10. // 上右下左中 
  11. int dx[5] = {0, 1, 0, -1, 0}; 
  12. int dy[5] = {1, 0, -1, 0, 0}; 
  13.  
  14. // 按第 x 行第 y 列,本身和上下左右五個(gè)燈都取反 
  15. void turn(int x, int y) 
  16.     for (int i = 0; i < 5; ++ i) 
  17.     { 
  18.         int a = x + dx[i], b = y + dy[i]; 
  19.         if (0 <= a && a < 5 && 0 <= b && b < 5) 
  20.             g[a][b] = g[a][b] == '1' ? '0''1'
  21.     } 
  22.  
  23. int work() 
  24.     int ans = 2e9; 
  25.     // 第一層循環(huán),把所有第一行按的情況都遍歷 
  26.     // k 是被壓縮了的狀態(tài),最小 0b00000 代表都不按, 
  27.     // 最大 0b11111 代表都按 
  28.      
  29.     // 備份,因?yàn)橄旅娴牟僮鲿?huì)改變 g 
  30.     char backup[N][N]; 
  31.     memcpy(backup, g, sizeof g); 
  32.  
  33.     for (int k = 0; k < (1 << 5); ++ k) 
  34.     { 
  35.         // 確保我們的 g 是輸入的 g 
  36.         memcpy(g, backup, sizeof backup); 
  37.  
  38.         // 當(dāng)?shù)谝恍袨?nbsp;k 時(shí),總操作次數(shù)是.. 
  39.         int res = 0;  // 用 res 來記錄 
  40.  
  41.         // 執(zhí)行 k (根據(jù) k 把第一行按了) 
  42.         for (int j = 0; j < 5; ++ j) 
  43.         { 
  44.             if (k >> j & 1) 
  45.             { 
  46.                 res ++; 
  47.                 turn(0, j); 
  48.             } 
  49.         } 
  50.          
  51.         // 第一行確定了,第二行就確定了 
  52.         // 因?yàn)橹挥泻侠聿僮鞯诙?nbsp;
  53.         // 才能把第一行全部點(diǎn)亮 
  54.         // 以此類推,第二行定了后,第三行就被第二行決定了 
  55.         for (int i = 0; i < 4; ++ i) 
  56.         { 
  57.             for (int j = 0; j < 5; ++ j) 
  58.             { 
  59.                 if (g[i][j] == '0'
  60.                 { 
  61.                     res ++; 
  62.                     turn(i + 1, j); 
  63.                 } 
  64.             } 
  65.         } 
  66.  
  67.         // 上面的操作一定能保證前 4 行全亮 
  68.         // 但是第 5 行不一定全亮,第 5 行全亮,才是真正有效的操作 
  69.         bool success = true
  70.         for (int j = 0; j < 5; ++ j) 
  71.         { 
  72.             if (g[4][j] == '0'
  73.             { 
  74.                 success = false
  75.                 break; 
  76.             } 
  77.         } 
  78.          
  79.         // 如果是有效的操作,咱看看一共按了幾次開關(guān) 
  80.         if (success) ans = min(res, ans); 
  81.     } 
  82.      
  83.     // 根據(jù)題意返回輸出值 
  84.     if (ans > 6) return -1; 
  85.     return ans; 
  86.  
  87. int main() 
  88.     int n; 
  89.     cin >> n; 
  90.     while (n -- ) 
  91.     { 
  92.         for (int i = 0; i < 5; ++ i) cin >> g[i]; 
  93.         printf("%d\n"work()); 
  94.     } 

參考資料

[1]

 

AcWing: https://www.acwing.com/

 

責(zé)任編輯:武曉燕 來源: Piper蛋窩
相關(guān)推薦

2022-06-10 08:37:45

微軟WindowsWindows 11

2014-11-17 18:23:35

云服務(wù)大數(shù)據(jù)

2010-12-15 17:25:59

Exchange Se

2011-08-02 13:16:36

Objective-C 語法 函數(shù)

2018-09-15 05:09:28

2009-09-11 09:18:17

ASP.NET MVC

2010-03-25 12:21:44

無線網(wǎng)絡(luò)掉線故障

2023-03-13 08:33:36

java邏輯準(zhǔn)確值

2013-02-27 09:16:34

2023-12-14 07:33:29

Edge瀏覽器微軟

2017-09-14 09:40:32

PythonUbuntu信號機(jī)制

2020-07-29 09:50:54

人工智能網(wǎng)絡(luò)安全技術(shù)

2024-08-08 16:17:29

2013-03-22 10:30:16

IT主管ITM云計(jì)算

2017-01-19 09:12:39

Apriori算法流程

2018-04-09 11:11:03

RGB臺(tái)式機(jī)主機(jī)

2025-04-21 06:53:57

2012-03-23 14:38:31

JavaScript

2011-06-15 10:20:50

Ubuntu 11.0

2015-08-19 16:14:10

云共享數(shù)據(jù)共享云存儲(chǔ)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

91精品国产91热久久久做人人| 欧美国产免费| 一本到不卡精品视频在线观看| 日韩av快播网址| 色偷偷男人天堂| 亚洲一区二区电影| 午夜精品影院在线观看| 日韩在线三区| 亚洲av少妇一区二区在线观看| 久久精品国产大片免费观看| 日韩一区二区三区四区五区六区| 亚洲国产一区二区三区在线播| 国产又大又黄视频| 日韩免费高清| 亚洲成色777777在线观看影院| 国产精品视频二| 国产精品免费观看| 99免费精品视频| 91网在线免费观看| 无码人妻aⅴ一区二区三区有奶水| 久久97精品| 91麻豆精品国产91久久久资源速度 | 欧美三级午夜理伦三级老人| 视频污在线观看| 国产乱色国产精品免费视频| 国产成人精品电影| 日韩欧美三级视频| 欧美欧美全黄| 色噜噜久久综合伊人一本| 欧美做受喷浆在线观看| 中文字幕日韩在线| 欧美一区二区在线不卡| 三级a三级三级三级a十八发禁止| 91在线视频| 久久久蜜臀国产一区二区| 国产一区二区三区四区五区加勒比| 日本五十路女优| 牛夜精品久久久久久久99黑人| 欧美大肚乱孕交hd孕妇| 在线观看亚洲色图| 制服诱惑亚洲| 色婷婷av一区二区三区软件| 国产色一区二区三区| 九色porny丨首页在线| 欧美激情综合五月色丁香| 久久久久久久久久久久久久久久av| 波多野结衣一本一道| 一本色道久久综合| 91黄色8090| 国产乡下妇女做爰| aa级大片欧美三级| 7m第一福利500精品视频| 欧美亚洲天堂网| 一区二区三区福利| 久久久久久有精品国产| 久久久精品视频免费| 激情婷婷欧美| 97久久精品人人澡人人爽缅北| 亚洲黄色小说视频| 午夜先锋成人动漫在线| 国产婷婷97碰碰久久人人蜜臀| 国产成年人视频网站| 欧美jizz18| 日韩一区二区影院| 亚洲激情 欧美| 秋霞蜜臀av久久电影网免费 | 久久亚洲综合国产精品99麻豆精品福利| 色哟哟免费视频| 日本在线视频一区二区三区| 欧美成人一区二区| 国产性猛交96| 首页亚洲中字| 国产一区二区三区在线看| 91av手机在线| 欧美另类综合| 日韩av电影院| 888奇米影视| 国产99久久久国产精品潘金网站| 国产精品久久久久免费a∨大胸 | 天天综合天天综合色| 国产资源在线视频| 日韩久久一区二区三区| 欧美日韩国产一区| 韩国三级hd中文字幕有哪些| 高潮久久久久久久久久久久久久| 欧美日韩国产中文| 女人扒开腿免费视频app| 亚洲精品观看| 亚洲丝袜av一区| 久草视频手机在线| 在线综合视频| 91九色国产在线| 午夜国产在线观看| 中文字幕一区三区| 69sex久久精品国产麻豆| 欧美××××黑人××性爽 | 中文字幕第315页| 国内精品免费**视频| 久久99精品久久久久久三级| 国产在线观看网站| 亚洲另类在线视频| 日本免费一级视频| 91精品国产自产在线丝袜啪| 亚洲天堂免费视频| 久久黄色免费视频| 蜜桃在线一区二区三区| 精品九九九九| 国产视频中文字幕在线观看| 狠狠色狠狠色综合日日五| 亚洲制服在线观看| 精品国内自产拍在线观看视频 | 亚洲电影免费观看高清完整版在线 | 91av手机在线| 国产欧美二区| 99porn视频在线| 在线观看免费网站黄| 黑人巨大精品欧美一区免费视频| 人妻少妇被粗大爽9797pw| 欧美三级一区| 在线看日韩av| 波多野结衣网站| 91在线国内视频| 欧美性猛交内射兽交老熟妇| 成人久久网站| 亚洲欧洲日产国码av系列天堂| 成人性生活免费看| 国偷自产av一区二区三区| 日韩在线小视频| 丰满人妻一区二区三区四区| 91片黄在线观看| 国产美女在线一区| 97超碰成人| 九色精品美女在线| 国产视频一区二区三| 国产精品视频一区二区三区不卡| 日韩a级黄色片| 日本免费一区二区视频| 欧美成人激情在线| 国产女人18毛片18精品| 自拍偷拍亚洲激情| 亚洲精品国产一区二区三区| 日韩一区二区在线免费| 国产精品麻豆va在线播放| 国产精品久久一区二区三区不卡| 亚洲欧美综合色| 极品粉嫩美女露脸啪啪| 68国产成人综合久久精品| 91欧美激情另类亚洲| 老司机免费在线视频| 欧美日韩一区三区| 呻吟揉丰满对白91乃国产区| 日韩av一二三| 成人手机视频在线| 国产精品国产三级在线观看| 久久国产加勒比精品无码| 精品黑人一区二区三区国语馆| 2021中文字幕一区亚洲| 日韩欧美精品在线观看视频| 欧美男gay| 国产精国产精品| 黄色影院在线播放| 欧美性极品少妇| 天天看天天摸天天操| 国产东北露脸精品视频| 久草视频国产在线| 免费看成人哺乳视频网站| 国产成人精品免高潮在线观看| 六月婷婷中文字幕| 精品久久香蕉国产线看观看gif| 999这里有精品| 你懂的视频一区二区| 国产三区精品| 成人开心激情| 精品国产一区二区三区久久狼黑人| 中文字幕视频网| 欧美国产欧美综合| 天天干天天曰天天操| 99re国产精品| 奇米视频888战线精品播放| 伊人久久精品| 97激碰免费视频| 成年人视频在线免费观看| 日韩一级欧美一级| 特级西西444www大精品视频免费看| 成人午夜电影网站| 青青在线免费观看视频| 91成人国产| 欧美欧美一区二区| 日韩视频1区| 日本人成精品视频在线| 国产福利在线播放麻豆| 亚洲激情久久久| 6—12呦国产精品| 欧美三级欧美成人高清www| 看黄色录像一级片| 91性感美女视频| 青青草原播放器| 视频一区二区中文字幕| 久久国产午夜精品理论片最新版本| 亚洲乱码一区| 日本久久久久久久| 欧美黑人xx片| 在线成人中文字幕| 天天摸夜夜添狠狠添婷婷| 欧美日韩国产精品自在自线| 久久艹免费视频| 伊人婷婷欧美激情| 国产破处视频在线观看| 91在线小视频| 日本精品一二三| 久久精品国产**网站演员| av动漫在线观看| 国内自拍视频一区二区三区| 中文字幕日韩精品久久| 蜜桃国内精品久久久久软件9| 国产精彩精品视频| 成入视频在线观看| 欧美久久精品午夜青青大伊人| 亚洲AV无码乱码国产精品牛牛| 亚洲成人高清在线| 欧美成人一区二区三区高清| 中文字幕av一区二区三区| 久久人人妻人人人人妻性色av| 狂野欧美一区| 波多野结衣乳巨码无在线| 欧美激情91| 一个色的综合| 日韩免费看片| 一区二区三区四区不卡| 精品久久久久中文字幕小说| 欧美日韩亚洲在线| 要久久电视剧全集免费| 免费成人看片网址| 任你躁在线精品免费| 精品国产一区二区三区日日嗨| 78精品国产综合久久香蕉| 国内成人精品一区| а√天堂中文在线资源8| 欧美激情亚洲国产| 国内高清免费在线视频| 欧美精品制服第一页| 性xxxfreexxxx性欧美| 久久亚洲一区二区三区四区五区高 | 日韩色在线观看| 国产草草影院ccyycom| 日韩欧美色综合网站| 成人av一区二区三区在线观看| 激情久久av一区av二区av三区| 黄色av免费播放| 亚洲国产精品精华液ab| 国产肥白大熟妇bbbb视频| 久久精品欧美日韩| 五月天精品在线| 国产精品久久久久天堂| 欧美一级特黄高清视频| 亚洲欧美一区二区不卡| 欧美黄色一区二区三区| 亚洲国产日韩一级| 五月天激情国产综合婷婷婷| 色综合亚洲欧洲| 天堂网视频在线| 欧美日韩一区中文字幕| 国产乱淫av免费| 亚洲成avwww人| 污污视频在线免费看| 亚洲色无码播放| 欧洲不卡av| 欧美福利视频在线| 麻豆网站免费在线观看| 国产精品久久久久久久7电影| 理论不卡电影大全神| 欧美一区在线直播| 巨大黑人极品videos精品| 91大片在线观看| 日韩在线麻豆| 99热一区二区三区| 夜夜嗨网站十八久久| 天天操,天天操| 国产成人一区在线| av小说在线观看| 中文字幕欧美一区| 日韩毛片在线播放| 欧美日韩中文精品| 亚洲第九十九页| 亚洲午夜精品久久久久久性色| 香蕉国产在线视频| 最新国产成人av网站网址麻豆| 日韩精品系列| 俺去了亚洲欧美日韩| 少妇视频一区| 成人激情视频在线观看| 欧美做受69| 国产成人生活片| 日韩国产欧美在线观看| 制服下的诱惑暮生| 亚洲国产精品黑人久久久| 久久久综合久久| 欧美系列在线观看| 五月婷婷伊人网| 欧美成人免费网| 久久久成人av毛片免费观看| 高清视频一区| 日韩在线欧美| 免费成人在线视频网站| 狠狠色丁香婷婷综合| 中文乱码人妻一区二区三区视频| 国产伦理精品不卡| 国产成人一区二区在线观看| 亚洲午夜电影在线观看| 91片黄在线观看喷潮| 国产一区二区三区在线视频| heyzo高清在线| 亚洲一区二区三区777| 不卡一区2区| 无码人妻h动漫| 成人免费视频一区| 欧美一级片在线视频| 欧美性生交大片免费| 国内爆初菊对白视频| 欧美成人精品三级在线观看| 欧美视频在线视频精品| 欧美一二三区| 久久福利毛片| 亚洲制服丝袜在线播放| 亚洲一区二区三区视频在线| 精品国产伦一区二区三| www亚洲精品| 免费成人毛片| 亚洲成人第一| 麻豆一区二区三| 国产黄色大片免费看| 色噜噜狠狠成人中文综合| 青青草免费在线| 欧美亚洲在线观看| 精品欠久久久中文字幕加勒比| 日韩高清在线播放| 久久一本综合频道| 人人妻人人藻人人爽欧美一区| 国产精品久久久久久久久免费相片| 中文字幕在线观看成人| 91精品国产综合久久久久| 成人日韩欧美| 亚洲最大的网站| 欧美一区免费| 久草视频福利在线| 亚洲国产美女搞黄色| 天天操天天干天天插| 国产91精品久| 宅男在线一区| 黄色三级视频片| 国产精品每日更新在线播放网址| 久久精品国产亚洲av高清色欲| 欧美午夜无遮挡| 久蕉依人在线视频| 国产精品一区二区在线| 婷婷综合视频| 成人在线短视频| 亚洲超丰满肉感bbw| 欧美午夜黄色| 国产精品爽黄69| 97精品视频在线看| 俄罗斯女人裸体性做爰| 亚洲高清不卡在线观看| 手机av免费在线观看| 国产精品91久久久久久| 日韩激情图片| 四虎1515hh.com| 欧美日韩美女在线观看| 国产在线黄色| 97超碰资源| 羞羞答答国产精品www一本| 亚洲第一综合网| 7777精品伊人久久久大香线蕉的| 男人的天堂av高清在线| 国产在线视频91| 亚洲小说欧美另类婷婷| 精品国产成人亚洲午夜福利| 欧美高清一级片在线| 91九色在线看| 亚洲色图自拍| 风间由美性色一区二区三区 | 色哟哟视频在线| 色系网站成人免费| av毛片在线| 欧美性色黄大片人与善| 国产一区福利在线| 日韩精品视频免费看| 中文字幕亚洲一区二区三区| 日韩欧美久久| 午夜免费一区二区| 一区二区三区精品| 国产精品免费观看| 国产高清不卡av| 免费观看日韩电影| 日韩三级av在线| 久久精品国产99国产精品澳门| 不卡亚洲精品| 在线视频不卡国产| 不卡电影一区二区三区| 91久久精品无码一区二区|