思路
這題表面上問你最小次數,讓你誤以為是bfs,其實這道題根本沒有最小,你直接順序遍歷,遇到不一樣的就翻,最終得到翻的次數,就是答案
剛開始看到的時候,還想著雙向bfs,但是一看規模–1000長度的子串,那麼最壞情況下,第二次bfs就有999種,還是挺可怕的,我感覺必定超時,所以直接順序遍歷,碰碰運氣,沒想到直接ac。
如果慢慢觀察的話,應該是能看出來
不論早翻,還是晚翻,還是先後順序不同翻,都不影響最終翻的總次數
#include
#include
using
namespace std;
void
revs
(char
&s)int
main()
else}}
printf
("%d"
,ans)
;}
藍橋杯 翻硬幣
問題描述 小明正在玩乙個 翻硬幣 的遊戲。桌上放著排成一排的若干硬幣。我們用 表示正面,用 o 表示反面 是小寫字母,不是零 比如,可能情形是 oo oooo 如果同時翻轉左邊的兩個硬幣,則變為 oooo oooo 現在小明的問題是 如果已知了初始狀態和要達到的目標狀態,每次只能同時翻轉相鄰的兩個硬...
藍橋杯 翻硬幣
小明正在玩乙個 翻硬幣 的遊戲。桌上放著排成一排的若干硬幣。我們用 表示正面,用 o 表示反面 是小寫字母,不是零 比如,可能情形是 oo oooo 如果同時翻轉左邊的兩個硬幣,則變為 oooo oooo 現在小明的問題是 如果已知了初始狀態和要達到的目標狀態,每次只能同時翻轉相鄰的兩個硬幣,那麼對...
藍橋杯翻硬幣
問題描述 小明正在玩乙個 翻硬幣 的遊戲。桌上放著排成一排的若干硬幣。我們用 表示正面,用 o 表示反面 是小寫字母,不是零 比如,可能情形是 oo oooo 如果同時翻轉左邊的兩個硬幣,則變為 oooo oooo 現在小明的問題是 如果已知了初始狀態和要達到的目標狀態,每次只能同時翻轉相鄰的兩個硬...