特殊密碼鎖

2021-10-03 23:34:13 字數 1301 閱讀 8038

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

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

樣例輸入

011

000

樣例輸出

1
#include #include #include #include #include #include #include #include #include #define sf(a) scanf("%d\n",&a)

#define rep(i,a,b) for(i=a;i<=b;i++)

#define e 1e-8

using namespace std;

typedef long long ll;

const int inf=0x3f3f3f3f;

const ll mod=1e9+7;

const int idata=1e3+5;

int i,j,k;

int judge,flag;

//vectorstep(idata);

ll step[idata];

//int dp[idata];

//int valu[idata],wigh[idata];

ll n,m,t,x,y;

ll maxx=-inf,minn=inf;

ll cnt,len,ans=inf,sum;

priority_queue< int, vector, greater>q;

char s[idata];

int main()

strcpy(temp,s);

i=1,cnt=0;

while(temp[i]!='\0')//列舉第乙個燈不操作的情況

i++;

}if(temp[len-1]==ch[len-1])

ans=cnt;

strcpy(temp,s);

i=1,cnt=1;

temp[0]^=1;

temp[1]^=1;

while(temp[i]!='\0')//列舉操作第乙個燈的情況

i++;

}if(ch[len-1]==temp[len-1])

ans=min(ans,cnt);

if(ans!=inf)

cout

cout<<"impossible"

delete ch;

}return 0;

}

特殊密碼鎖

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

特殊密碼鎖

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

特殊密碼鎖

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