BFS 洛谷 P1032 字串變換

2022-05-10 03:30:09 字數 925 閱讀 9835

「年輕人切忌旋入技術細節漩渦, 那是無底之洞」            ----zeo

基礎bfs加一堆字串處理細節

逐個比較是否可替換

替換時把字元拆成三段 前 要替換的 後

根據string 特性

前 + 替換的 + 後 可得操作完畢後串

++步數壓入佇列繼續bfs

map 進行判重

坑的不行

寫的想吐

沒感到任何技術提公升

**

#include #include #include using namespace std;

int ans = 0;

string bts[6], ats[6];

string b;

map < string , int > m;

struct trr

a;queue q;

int tf = 0;

string trans(string a, int flag, int btsf)

void bfs(trr a)

sa.str = trans(ret.str, i, j);

sa.step = ret.step + 1;

if(sa.step > 10)

if(sa.str == b)

if(m[sa.str] == 0)

}l1:

continue;}}

}}int main()

bfs(a);

if (ans == 0 || ans > 10)

cout<

else

cout<

return 0;

}

洛谷p1032 字串變換 (bfs)

題目概述 字串的子串 必須連續與子串行不同 有至多六種變化規則,若在10步 包含10步 以內能將a變換為b,則輸出最少的變換步數 否則輸出 no answer 題目分析 ac include using namespace std mapint mp 從前出現過的字串不能再次出現 廣度搜尋樹,第一次...

洛谷P1032 字串變換 bfs

題意 給定乙個原字串和目標字串,以及幾個字串變換的規則。問能否根據這幾個規則在十步之內把原字串變為目標字串。思路 bfs,佇列維護字串和所經過的步驟這樣乙個二元組而不是簡單的字串。每一次取出乙個字串,用所給的規則進行變換得到新的字串。由於字串中可能有多次匹配,所以用vector存每一次匹配的開始位置...

洛谷 P1032 字串變換(BFS,字串)

這題要注意的點 keng 挺多的 題目描述 已知有兩個字串a,b及一組字串變換的規則 至多6個規則 a 1 b 1 a 2 b 2 規則的含義為 在 a中的子串 a 1可以變換為 b 1,a 2 可以變換為 b 2 例如 a abcd b xyz 變換規則為 abc xu ud y y yz 則此時...