小q正在給一條長度為n的道路設計路燈安置方案。
為了讓問題更簡單,小q把道路視為n個方格,需要照亮的地方用'.'表示, 不需要照亮的障礙物格仔用'x'表示。
小q現在要在道路上設定一些路燈, 對於安置在pos位置的路燈, 這盞路燈可以照亮pos - 1, pos, pos + 1這三個位置。
小q希望能安置盡量少的路燈照亮所有'.'區域, 希望你能幫他計算一下最少需要多少盞路燈。
輸入的第一行包含乙個正整數t(1 <= t <= 1000), 表示測試用例數
接下來每兩行乙個測試資料, 第一行乙個正整數n(1 <= n <= 1000),表示道路的長度。
第二行乙個字串s表示道路的構造,只包含'.'和'x'。
對於每個測試用例, 輸出乙個正整數表示最少需要多少盞路燈。
示例1
2
3.x.
11...xx....xx
複製
1
3
基本思路:計數記下連續的點的個數,每三個點(『.』)就是乙個燈,所以就mod3,可能還存在多乙個和多兩個。
多乙個:這種情況就 所以把燈放在接下來的 x(只是不需要照亮 沒說不可以照亮) 上是最好的選擇,然後 x 後面那個也被照亮,所以不需要考慮。
多兩個:這種情況後面跟著乙個 x 所以不用管 只是計算燈的個數時 +1。
原始碼:
#include #include using namespace std;
int main()
continue;
}if(c[i] == 'x')else if(counta % 3 == 2)else
counta = 0;
} } cout<} return 0;
}
牛客網程式設計題 網易 安置路燈
給出乙個字串表示道路,其中字元 表示需要照亮的區域,字元 x 表示不需要照亮的區域,在乙個格仔上安置路燈,這個路燈可以照亮自己以及相鄰的格仔,求最少要多少盞路燈可以照亮全部區域。記需要的路燈數為cnt,初始cnt 0,我們只需從頭到尾遍歷字串,若遇見 則cnt 然後跳過三個格仔,因為我們總是可以在 ...
牛客網 2018校招真題 安置路燈
題目 題目描述 小q正在給一條長度為n的道路設計路燈安置方案。為了讓問題更簡單,小q把道路視為n個方格,需要照亮的地方用 表示,不需要照亮的障礙物格仔用 x 表示。小q現在要在道路上設定一些路燈,對於安置在pos位置的路燈,這盞路燈可以照亮pos 1,pos,pos 1這三個位置。小q希望能安置盡量...
計蒜客 路燈
題目描述 一條長為l路,上有n個公共座椅 忽略長度 現在在路上要修路燈,每個路燈覆蓋的長度為l,為了讓所有座椅都被路燈覆蓋到最少需要多少路燈?輸入描述 第一行為三個正整數l 10 9 n 1000 l l 用空格隔開,第二行包括n個整用空格隔開的數xi 0 xi l 代表每個路燈的位置。輸出描述 輸...