codevs 1099 字串變換

2021-08-09 16:39:10 字數 1462 閱讀 3870

題目描述 description

已知有兩個字串 a,b

及一組字串變換的規則(至多6個規則): a1−

>b1

a2−>b2

規則的含義為:在 a$中的子串 a1可以

變換為b

1 、a2可以

變換為b

2 …。

例如:a=′

abcd

′b=』xyz』

變換規則為:

『abc』->『xu』 『ud』->『y』 『y』->『yz』

則此時,a可以

經過一系

列的變換

變為b ,其變換的過程為:

『abcd』->『xud』->『xy』->『xyz』

共進行了三次變換,使得 a變換

為b。輸入描述 input description

輸入格式如下:ab

a1b1

\ a2b2

|-> 變換規則

… … /

所有字串長度的上限為 20。

輸出描述 output description

若在 10 步(包含 10步)以內能將 a變換

為b,則輸出最少的變換步數;否則輸出」no answer!」

樣例輸入 sample input

abcd xyz

abc xu

ud y

y yz

樣例輸出 sample output

3資料範圍及提示 data size & hint

hehe

【noip2002t2】

沒調出來。。。。特判了。。。

只是想看看雙向bfs長什麼樣= =

**扔上吧。。

#include

#include

#include

#include

#include

#include

using

namespace

std;

const

int maxn=100000+10;

int tot;

string s,t;

struct node

m[maxn];

queue

q1;queue

q2;mapstep1;

mapstep2;

string ss;

string jh(string ss1,string ss2,int x,int len)

int bfs()}}

if(!q2.empty())}}

}}int main()

else

if(ans==0||ans>10) puts("no answer!");

else

printf("%d",ans);

return

0;}

P1032 字串變換 字串

已知有兩個字串 a,b 及一組字串變換的規則 至多6個規則 a1 b1 a2 b2 規則的含義為 在 a 中的子串 a1 可以變換為 b1 a2 可以變換為 b2 例如 a abcd b xyz 變換規則為 abc xu ud y y yz 則此時,a 可以經過一系列的變換變為 b,其變換的過程為 ...

codevs2180 字串距離

題目描述 description 設有字串x,我們稱在x的頭尾及中間插入任意多個空格後構成的新字串為x的擴充套件串,如字串x為 abcbcd 則字串 abcb cd a bcbcd 和 abcb cd 都是x的擴充套件串,這裡 代表空格字元。如果a1是字串a的擴充套件串,b1是字串b的擴充套件串,a...

洛谷1032 字串變換

已知有兩個字串 a b 及一組字串變換的規則 至多6個規則 a1 b1 a2 b2 規則的含義為 在 a 中的子串 a1 可以變換為 b1 a2 可以變換為 b2 例如 a abcd b xyz 變換規則為 abc xu ud y y yz 則此時,a 可以經過一系列的變換變為 b 其變換的過程為 ...