Lock Puzzle 思路模擬 比較難想

2021-09-29 06:20:59 字數 776 閱讀 4521

題目傳送門--->傳送門

題意:給一種shift的操作,該操作可以自己選擇一定長度的字尾,可以說是字尾,翻轉選中長度的字尾然後把翻轉好的移動到原串的最前面。給你原串和需要換成的串,需要再6200步數內完成翻轉。串長最大為2000.

題解:比賽的時候沒想出來,由於給了結果和初始串,一開始使勁的往雙向bfs上靠,結果隨便想想都超時,賽後得知題解。發現可以乙個乙個把字元都移到後面,然後又得知把每個字元移到對後面可以三步之內搞定,舉個大致例子,所有串都可以這樣表示

[a]x[b],x表示想要移到最後面的字元,a表示在x前面的一串字串,b表示在x後面的一串字串。

第一步(把b翻到前面)--->~[b][a]x,其中~[b]表示把b這個串翻轉之後的串;

第二步(把x翻到前面)--->x~[b][a]

第三步(把x後面的所有都翻到前面)-->~[a][b]x

完美地達到了我們想要的保留後面並在最後新增乙個字元的要求。

細節見**

#include #include #include #include using namespace std;

const int mx=9e3+20;

string s1, s2, tem;

int n, cnt;

int ans[mx];

void do(int x)

if(j==n-1-i+1)

do(j+1), do(n-1), do(1);

}if(f)

return 0;

}

NOIP模擬 艾比所特

阿良良木曆將要迎來人生 不,是吸血鬼生涯 的第二次戰鬥 與身為人類和吸血鬼混血兒的艾比所特在直江津高中的操場solo,以取回heartunderblade的左腳。艾比所特個子不大,卻單手扛著一副形狀比自己大三倍,重量是他體重乘三次方的巨大十字架。吸血鬼是怕十字架的,所以曆要遠遠地躲著。更麻煩的是艾比...

豎直列印單詞 暴力模擬的思路

給你乙個字串s。請你按照單詞在s中的出現順序將它們全部豎直返回。單詞應該以字串列表的形式返回,必要時用空格補位,但輸出尾部的空格需要刪除 不允許尾隨空格 每個單詞只能放在一列上,每一列中也只能有乙個單詞。題目資料保證兩個單詞之間只有乙個空格首先看到題目,應該先注意一下資料大小,一看,200,說明,這...

NOIP提高A組模擬 艾比所特

阿良良木曆將要迎來人生 不,是吸血鬼生涯 的第二次戰鬥 與身為人類和吸血鬼混血兒的艾比所特在直江津高中的操場solo,以取回heartunderblade的左腳。艾比所特個子不大,卻單手扛著一副形狀比自己大三倍,重量是他體重乘三次方的巨大十字架。吸血鬼是怕十字架的,所以曆要遠遠地躲著。更麻煩的是艾比...