AcWing寒假每日一題 Day10翻硬幣

2021-10-16 10:18:34 字數 1274 閱讀 6727

小明正在玩乙個「翻硬幣」的遊戲。

桌上放著排成一排的若干硬幣。我們用*表示正面,用o表示反面(是小寫字母,不是零)。

比如,可能情形是:**oo***oooo

如果同時翻轉左邊的兩個硬幣,則變為:oooo***oooo

現在小明的問題是:如果已知了初始狀態和要達到的目標狀態,每次只能同時翻轉相鄰的兩個硬幣,那麼對特定的局面,最少要翻動多少次呢?

我們約定:把翻動相鄰的兩個硬幣叫做一步操作。

輸入格式

兩行等長的字串,分別表示初始狀態和要達到的目標狀態。

輸出格式

乙個整數,表示最小操作步數

資料範圍

輸入字串的長度均不超過100

10010

0。資料保證答案一定有解。

輸入樣例1:

**********

o****o****

輸出樣例1:

5

55

輸入樣例2:

*o**o***o***

*o***o**o***

輸出樣例2:

1

11

分析:此題我用的應該算是貪心演算法,依次遍歷每個硬幣s[i

]s[i]

s[i]

,如果不相同,那麼就翻轉s[i

]s[i]

s[i]

和s [i

+1

]s[i+1]

s[i+1]

,直到結束。

#include.h>

using namespace std;

const int n=

105;

char str[n]

,s[n]

;void f

(char &x)

int main()

} cout<

}

acwing寒假每日一題題解

貨倉選址 頭兩天的每日一題有點水 include using namespace std int s 505 505 int i,j intmain void 語法題蛇形添數 輸入兩個整數n和m,輸出乙個n行m列的矩陣,將數字 1 到 n m 按照回字蛇形填充至矩陣中。具體矩陣形式可參考樣例。輸入格...

acwing 寒假每日一題題解

本篇部落格是基於acwing活動中的寒假每日一題 活動位址 在一條數軸上有 n 家商店,它們的座標分別為 a1 an。現在需要在數軸上建立一家貨倉,每天清晨,從貨倉到每家商店都要運送一車商品。為了提高效率,求把貨倉建在何處,可以使得貨倉到每家商店的距離之和最小。輸入格式 第一行輸入整數n。第二行n個...

AcWing寒假每日一題 Day9獎學金

某小學最近得到了一筆贊助,打算拿出其中一部分為學習成績優秀的前5名學生發獎學金。期末,每個學生都有3門課的成績 語文 數學 英語。先按總分從高到低排序,如果兩個同學總分相同,再按語文成績從高到低排序,如果兩個同學總分和語文成績都相同,那麼規定學號小的同學排在前面,這樣,每個學生的排序是唯一確定的。任...