EOJ 1076 染氣球 區間計數

2021-09-27 09:39:06 字數 932 閱讀 2262

小強和旺財去逛街,他們去了歐尚,旺財看見超市裡面的氣球興奮的直叫,呵呵,由於小強很喜歡旺財,所以下定決心給旺財買一打回家。回家小強數了下,一共有 n 只氣球,小強將 n 只氣球從左到右依次編號為 1、2、3……n,每次給 2 個整數 a,b (a<=b),小強便騎上他的「小飛鴿 」 牌電動車從氣球 a 開始到氣球 b 依次給每個氣球塗一次顏色。但是 n 次以後小強已經忘記了第 i 個氣球已經塗過幾次顏色了,你能幫他算出每個氣球被塗過幾次顏色嗎?

每個測試例項第一行為乙個整數 n,(n <= 100000). 接下來的 n 行,每行包括 2 個整數 a b(1 <= a <= b <= n)。

當 n = 0,輸入結束。

每個測試例項輸出一行,包括 n 個整數,第 i 個數代表第 i 個氣球總共被塗色的次數。注意,每個資料之間有個空格,最後乙個資料後面沒空格。

input

3

1 12 2

3 33

1 11 2

1 30

output

1 1 1

3 2 1

思路:暴力計數最壞情況可能會有n*n的複雜度,因此考慮只通過區間端點來計數。由於每次被區間覆蓋一次,區間內的氣球只會被塗色1次,因此每次區間出現其次對應的端點加1。為了避免左右端點統計重複,我們只統計左端點;為了表示區間的結束,我們對右區間之後的乙個氣球計數減1進行抵消,防止統計到沒有覆蓋到當前氣球的區間。 最後只需遍歷一遍陣列,累計計數和即可,**如下:

#include #include using namespace std;

int main()

for(int i=1; isum += c[n];

cout<}

return 0;

}

EOJ 莫干山奇遇

出題人當然是希望出的題目有關oxx,於是想方設法給題目配上一些有關oxx的背景故事,使得它看起來不那麼無趣。但有的時候卻無法引入合適的小姐姐,使得oxx顯得非常可憐。所以出題人刪除了故事,只留下乙個枯燥乏味的數學問題。故事已刪除 給乙個長度為n的序列a1,a2,an,求乙個長度為m的序列b1,b2,...

1076 飯卡(動態規劃)

題目描述 如果購買乙個商品之前,卡上的剩餘金額大於或等於5元,就一定可以購買成功 即使購買後卡上餘額為負 否則無法購買 即使金額足夠 所以大家都希望盡量使卡上的餘額最少。某天,食堂中有n種菜 每種菜可購買一次。已知每種菜的 以及卡上的餘額,問最少可使卡上的餘額為多少。輸入 多組資料。對於每組資料 第...

AcWing 1076 迷宮問題

題目描述 給定乙個 n n 的二維陣列,如下所示 int maze 5 5 它表示乙個迷宮,其中的1表示牆壁,0表示可以走的路,只能橫著走或豎著走,不能斜著走,要求程式設計序找出從左上角到右下角的最短路線。資料保證至少存在一條從左上角走到右下角的路徑。輸入格式 第一行包含整數 n。接下來 n 行,每...