小奇畫畫 (bfs)

2021-08-21 20:23:09 字數 1381 閱讀 3006

題目描述

紅蓮清淚兩行欲吐半點卻無

如初是你杳然若緋霧還在水榭畔畫樓處

是誰衣白衫如初誰紅裳如故

——《憶紅蓮》

小奇想畫幾朵紅蓮,可惜它剛開始學畫畫,只能從畫圓開始。小奇畫了n個圓,它們的圓心都在x軸上,且兩兩不相交(可以相切)。現在小奇想知道,它畫的圓把畫紙分割成了多少塊?(假設畫紙無限大)

輸入第一行包括1個整數n。

接下來n行,每行兩個整數x,r,表示小奇畫了圓心在(x,0),半徑為r的乙個圓。

輸出輸出乙個整數表示答案。

樣例輸入

4 

7 5

-9 11 11 9

0 20

樣例輸出

6
提示

對於 100%資料,1<=n<=300000,-10^9<=x<=10^9,1<=r<=10^9。

當某個圓被多個連續相切的小圓分成上下兩部分時塊數+2,其他情況塊數+1。

上面的情況時最外面的圓被分成上下兩部分所以+2,其他小圓每個+1,初始為1;

所以只需要判斷有多少個+2的,最後再+圓的個數+1;

建圖把每個大圓裡直接包含的小圓建一條邊,然後判斷每個大圓直接相連的所有小圓的r的和是否等於大圓的r就可以

建圖的話先按照左端點小-->大排序,左端點相等的話按右端點大-->小排序,然後用stack建圖。

//建圖

for(int i = 0; i < n; i++)

s.pop();

} s.push(i);

} int ans = bfs() + 1 + n;

printf("%d\n", ans);

return 0;

}

小奇畫畫 BFS

紅蓮清淚兩行欲吐半點卻無 如初是你杳然若緋霧還在水榭畔畫樓處 是誰衣白衫如初誰紅裳如故 憶紅蓮 小奇想畫幾朵紅蓮,可惜它剛開始學畫畫,只能從畫圓開始。小奇畫了 n 個圓,它們的圓心都在 x 軸上,且兩兩不相交 可以相切 現在小奇想知道,它畫的圓把畫紙分割成了多少塊?假設畫紙無限大 第一行包括 1 個...

5725 小奇畫畫

題目鏈結 當某個圓被多個連續相切的小圓分成上下兩部分時塊數 2,其他情況塊數 1。上面的情況時最外面的圓被分成上下兩部分所以 2,其他小圓每個 1,初始為1 所以只需要判斷有多少個 2的,最後再 圓的個數 1 建圖把每個大圓裡直接包含的小圓建一條邊,然後判斷每個大圓直接相連的所有小圓的r的和是否等於...

UPC 5725 小奇畫畫

時間限制 1 sec 記憶體限制 128 mb 題目描述 紅蓮清淚兩行欲吐半點卻無 如初是你杳然若緋霧還在水榭畔畫樓處 是誰衣白衫如初誰紅裳如故 憶紅蓮 小奇想畫幾朵紅蓮,可惜它剛開始學畫畫,只能從畫圓開始。小奇畫了n個圓,它們的圓心都在x軸上,且兩兩不相交 可以相切 現在小奇想知道,它畫的圓把畫紙...