特殊密碼鎖

2021-09-01 00:22:53 字數 988 閱讀 5830

總時間限制: 1000ms 記憶體限制: 1024kb

描述

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

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

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

輸入

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

輸出

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

樣例輸入

011000

樣例輸出

1啊啊啊在11:00pm前兩分鐘ac了,好開心啊可以不用熬夜了,程式設計能力不好的我折騰一晚上了,一直在找錯,乙個很好的檢查哪一步錯誤的辦法是輸出中間結果。我知道我的**有點囉嗦,按不按第乙個鎖兩種情況很多**類似,但是我合併不好。

還有,要重視位運算。晚安~

#include#include#include#includeusing namespace std;

int setbit(int &n,int i,int v)

int flipbit(int &n,int i)

}if(lock!= result)

times1=100;

}else if(p)

if(lock!= result)

times2=100;

}} mintimes=min(times1,times2);

if(mintimes==100)

cout

}

特殊密碼鎖

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

特殊密碼鎖

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

特殊密碼鎖

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