20 NUC OJ 神奇的開關

2021-10-12 05:02:45 字數 1131 閱讀 8358

問題描述

實驗室一眾人都非常友好,大家有一天來到了一棟公寓。

這棟公寓非常奇特,所有的房間都在一側,而且所有房間的總開關在外面

每個房間的內的開關都壞掉了。也就是說,住在房間裡的人無法控制自己的開關。

這時候,zwt餓了,想要去偷吃烤冷麵,但是又怕大家發現。所以他跑到外面,想把所有人的房間裡燈全部關掉再去吃烤冷麵。

但是這個總開關非常神奇,他每次會把乙個房間及它之後的所有房間開關全部反轉。

現在你已經知道了房間的數量n和每個房間的開關狀態(1代表開啟,0代表關閉)

請問zwt最少需要操作這個開關幾次才能關閉所有開關?

形式化來說

給定長度為n的01序列,每次可以選取任意整數i,將i~n的所有位取反(即0變成1,1變成0),問最少幾次操作之後可以得到全0序列。

如果你要用getchar(),請注意

windows環境下的換行符為\r\n,linux環境的換行符為\n.

有些資料在windows中生成,而在評測機linux環境下評測。這種情況在字串輸入中非常常見。

輸入描述

第一行n(1<=n<=15,000,000)代表房間的數目

第二行長度為n的01序列s,其中表示第個房間的狀態,(0為開燈,1為關燈)

輸出描述

輸出最少的操作次數

樣例輸入

6011100

樣例輸出

#include

#include

#include

#include

#include

#include

#include

#include

#include

using

namespace std;

const

int n =

1e7+

5e6+10;

char s[n]

;int

main()

for(

int i=

1; i)printf

("%d"

, cnt)

;return0;

}

一道水題,需要注意的是,不能乙個接乙個的輸入字元或者數字,那樣會超時

個人發展 2 0

現在是到處都在喊 2.0 的口號,剝去繁華的外表,很多還是值得我們去思考。有幸參加了csdn主辦的sd 2.0大會,每個主題都想聽聽,可嘆分身乏術。聽著聽著也會陷入自己的思考,如此百家爭鳴,百花齊放 才會是自己的方向呢?仔細看一遍所有的講師 除去個別年輕有為的後生外,多半是些老傢伙,我這次特地挑了平...

定時傳送20

獲取郵件標題。param packinglistnum pl.no 箱單號 return string 郵件標題。private string getmailsubject string packinglistnum 獲取郵件正文。param packinglistnum pl.no 箱單號 ret...

(20)狀態模式

定義 當 個物件內在狀態改變時允許其改變行為,這個物件看起來像改變了其類。型別 行為型模式 類圖 狀態模式結構 state 抽象狀態角色,介面或抽象類,負責物件狀態定義,並且封裝環境角色以實現狀態切換。concretestate 具體狀態角色,每乙個具體狀態必須完成兩個職責 本狀態的行為管理以及趨向...