題解 bfs之密碼鎖

2021-09-24 11:38:23 字數 624 閱讀 8691

題目描述

瑪雅人有一種密碼,如果字串**現連續的2012四個數字就能解開密碼。給乙個長度為n的字串,(2=輸入

第一行輸入n,第二行輸入n個數字,只包含0,1,2

輸出樣例輸入

502120

502120

樣例輸出11

每次交換一對,判斷,進棧

#include #include #include #include #include #include #include using namespace std;

struct record;

bool contain2012(string x)

r.movecount=0;q.push(r);s.insert(r.code);

int times2=0,times1=0,times0=0;

int flag=true; //bfs

while(!q.empty())

if(s.find(tmp.code)==s.end())//找不到

}} if(flag) cout<<"-1\n";

} return 0;

}

神奇密碼鎖(BFS)

題目鏈結 題目描述 小明忘記了旅行箱上的密碼,現在他想自己暴力弄出密碼來,但他又想知道最從乙個數字到另乙個數字最少需要多少步,現在請你幫忙。另外,小明的密碼箱很奇怪,只有四位數,上面的數字只有1到9,每次只能讓每位數加1或者減1。按常識我們可以知道從1到9只需要減1,從9到1只需要加1。此外,你還能...

題解 特殊密碼鎖

描述 有一種特殊的二進位制密碼鎖,由n個相連的按鈕組成 n 30 按鈕有凹 凸兩種狀態,用手按按鈕會改變其狀態。然而讓人頭疼的是,當你按乙個按鈕時,跟它相鄰的兩個按鈕狀態也會反轉。當然,如果你按的是最左或者最右邊的按鈕,該按鈕只會影響到跟它相鄰的乙個按鈕。當前密碼鎖狀態已知,需要解決的問題是,你至少...

計蒜客 密碼鎖 bfs

題目描述 現在乙個緊急的任務是開啟乙個密碼鎖。密碼由四位數字組成,每個數字從1到9進行編號。每次可以對任何一位數字加1或減1.當將9加1時,數字變為1,當1減1時,數字變為9.還可以交換相鄰的數字,每乙個行動記做一步。求最少步驟開啟密碼鎖。輸入格式 第一行輸入四位數字,表示密碼鎖的初始狀態 第二行輸...