時間限制1.00s 記憶體限制125.00mb
從前有很多個硬幣擺在一行,有正面朝上的,也有背面朝上的。正面朝上的用1表示,背面朝上的用0表示。現在要求從這行的第乙個硬幣開始,將前若干個硬幣一起翻面,問如果要將所有硬幣翻到正面朝上,最少要進行這樣的操作多少次?
乙個字串,由0和1組成,表示硬幣狀態
乙個數,表示要翻轉的最少次數
輸入輸出樣例
輸入 #1
10
輸出 #1
2
處理思路:
找出首1位置,判斷字首0,有則翻轉(解決情況一)
flag定義狀態,開啟時可翻轉,掛起時不可(解決情況二)
除字首,其餘翻轉兩次,字首1翻成0,再與當前0翻成1
#include
using
namespace std;
const
int n =
2e5+5;
int main ()if
(str[i]
=='1'
) flag =1;
}printf
("%d"
, num)
;return0;
}
洛谷P2708 硬幣翻轉
題目鏈結 題目描述 有很多個硬幣擺在一行,有正面朝上的,也有背面朝上的。正面朝上的用1表示,背面朝上的用0表示。現在要求從這行的第乙個硬幣開始,將從第乙個硬幣開始的前若干個硬幣同時翻面,求如果要將所有硬幣翻到正面朝上,最少要進行這樣的操作多少次?輸入格式 乙個字串,由0和1組成,表示硬幣狀態 輸出格...
P2708 硬幣翻轉(模擬)
題目描述 從前有很多個硬幣擺在一行,有正面朝上的,也有背面朝上的。正面朝上的用1表示,背面朝上的用0表示。現在要求從這行的第乙個硬幣開始,將前若干個硬幣一起翻面,問如果要將所有硬幣翻到正面朝上,最少要進行這樣的操作多少次?輸入格式 乙個字串,由0和1組成,表示硬幣狀態 輸出格式 乙個數,表示要翻轉的...
洛谷P1146 硬幣翻轉
時間限制 1.00s 記憶體限制 125.00mb 題目描述在桌面上有一排硬幣,共nn枚,每一枚硬幣均為正面朝上。現在要把所有的硬幣翻轉成反面朝上,規則是每次可翻轉任意n 1n 1枚硬幣 正面向上的被翻轉為反面向上,反之亦然 求乙個最短的操作序列 將每次翻轉n 1枚硬幣成為一次操作 輸入格式 乙個自...