小明正在玩乙個「翻硬幣」的遊戲。
桌上放著排成一排的若干硬幣。我們用*
表示正面,用o
表示反面(是小寫字母,不是零)。
比如,可能情形是:**oo***oooo
如果同時翻轉左邊的兩個硬幣,則變為:oooo***oooo
現在小明的問題是:如果已知了初始狀態和要達到的目標狀態,每次只能同時翻轉相鄰的兩個硬幣,那麼對特定的局面,最少要翻動多少次呢?
我們約定:把翻動相鄰的兩個硬幣叫做一步操作。
輸入格式
兩行等長的字串,分別表示初始狀態和要達到的目標狀態。
輸出格式
乙個整數,表示最小操作步數
資料範圍
輸入字串的長度均不超過100
10010
0。資料保證答案一定有解。
輸入樣例1:
輸出樣例1:**********
o****o****
5輸入樣例2:55
輸出樣例2:*o**o***o***
*o***o**o***
1分析:此題我用的應該算是貪心演算法,依次遍歷每個硬幣s[i11
]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門課的成績 語文 數學 英語。先按總分從高到低排序,如果兩個同學總分相同,再按語文成績從高到低排序,如果兩個同學總分和語文成績都相同,那麼規定學號小的同學排在前面,這樣,每個學生的排序是唯一確定的。任...