藍橋杯 翻硬幣(O n 解法)

2021-10-19 11:39:46 字數 507 閱讀 5210

思路

這題表面上問你最小次數,讓你誤以為是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 現在小明的問題是 如果已知了初始狀態和要達到的目標狀態,每次只能同時翻轉相鄰的兩個硬...