小明正在玩乙個「翻硬幣」的遊戲。
桌上放著排成一排的若干硬幣。我們用 * 表示正面,用 o 表示反面(是小寫字母,不是零)。
比如,可能情形是:**oo***oooo
如果同時翻轉左邊的兩個硬幣,則變為:oooo***oooo
現在小明的問題是:如果已知了初始狀態和要達到的目標狀態,每次只能同時翻轉相鄰的兩個硬幣,那麼對特定的局面,最少要翻動多少次呢?
我們約定:把翻動相鄰的兩個硬幣叫做一步操作,那麼要求:
兩行等長的字串,分別表示初始狀態和要達到的目標狀態。每行的長度<1000
乙個整數,表示最小操作步數。示例1
複製
**********複製o****o****
5示例2
複製
*o**o***o***複製*o***o**o***
1
#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define inf 0x3f3f3f3f
typedef long long ll;
using namespace std;
string a,b;
int s[1010],fg=-1,sum;
int main()
int main()
牛客每日練習 方塊 I,方塊 II,子串行
有 n 個方塊排成一排,每個方塊都染有顏色,第 i 個的顏色為 ci,一共有三種顏色,分別為紅,黃,藍,現在你可以對相鄰的顏色不同的方塊進行施法,使其變成第三種顏色,比如對相鄰的紅方塊和黃方塊進行施法,就會使其合併為藍方塊。施法順序的不同,可能對最終的結果產生不同的影響,問在最優策略下,最少能剩下多...
牛客每日練習 比賽,完全平方數,裝進肚子
你在打比賽,這場比賽總共有12個題 對於第i個題,你的隊伍有a i 的機率解決她 如果解決不了她呢?由於所有人討論的都很大聲 所以你有b i 的概率從左邊那個隊那裡聽會這個題的做法 有c i 的概率從右邊那個隊那裡聽會這個題的做法 請問最終你們隊伍解出0 12題的概率分別是多少 第一行12個數表示a...
牛客每日練習 佇列重排,吃貨,K序列
有n n 500000 個人排成一列,把他們解散後重排,使得 重排後前方 跟 原排列前方 一樣的人不超過k k示例1 複製3 1複製 5當 n 3 時,假設三個人在原排列的編號由前到後依序為 1 2 3。重排列後的情形可分為下列 3 種 重排後前方 和 原排列前方 一樣的人數為 0 的有 1 3 2...