洛谷 P2708 硬幣翻轉

2021-10-09 22:51:11 字數 668 閱讀 1926

時間限制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枚硬幣成為一次操作 輸入格式 乙個自...