特殊密碼鎖

2021-09-27 12:44:53 字數 999 閱讀 4358

例題四 特殊密碼鎖

描述有一種特殊的二進位制密碼鎖,由n個相連的按鈕組成(n<30),按鈕有凹/凸兩種狀態,用手按按鈕會改變其狀態。

然而讓人頭疼的是,當你按乙個按鈕時,跟它相鄰的兩個按鈕狀態也會反轉。當然,如果你按的是最左或者最右邊的按鈕,該按鈕只會影響到跟它相鄰的乙個按鈕。

當前密碼鎖狀態已知,需要解決的問題是,你至少需要按多少次按鈕,才能將密碼鎖轉變為所期望的目標狀態。

輸入兩行,給出兩個由0、1組成的等長字串,表示當前/目標密碼鎖狀態,其中0代表凹,1代表凸。

輸出至少需要進行的按按鈕操作次數,如果無法實現轉變,則輸出impossible。

樣例輸入

011

000

樣例輸出
1
**實現
#include

#include

#include

using

namespace std;

string temp;

void

setbit

(int

& c,

int i,

int v)

intgetbit

(int c,

int i)

void

flipbit

(int

& c,

int i)

intin()

voidf(

)setbit

(switches, j +1,

getbit

(from, j)

!=getbit

(to,j));

}if(from == to)

cout << num;

sign =1;

break;}

}if(sign ==

0)cout <<

"impossible";}

intmain()

特殊密碼鎖

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

特殊密碼鎖

總時間限制 1000ms 記憶體限制 1024kb 描述 有一種特殊的二進位制密碼鎖,由n個相連的按鈕組成 n 30 按鈕有凹 凸兩種狀態,用手按按鈕會改變其狀態。然而讓人頭疼的是,當你按乙個按鈕時,跟它相鄰的兩個按鈕狀態也會反轉。當然,如果你按的是最左或者最右邊的按鈕,該按鈕只會影響到跟它相鄰的乙...

特殊密碼鎖

兩行,給出兩個由0 1組成的等長字串,表示當前 目標密碼鎖狀態,其中0代表凹,1代表凸。輸出至少需要進行的按按鈕操作次數,如果無法實現轉變,則輸出impossible。樣例輸入 011 000樣例輸出 1 include include include include include include...