題目:
垃圾小x經常在機房丟垃圾,比如奶茶杯子、用過的濕巾紙、吃完的零食包裝等。
可是訓練的桌子上放了電腦,實在放不下小x丟的垃圾了。因此,大家搬了一張專門丟垃圾的桌子放在小x邊上。為了防止小x丟垃圾的時候溢位,這張桌子很大,可以用乙個105×
105'>105×105105×105的網格來表示,桌子的左上角視為格點(1,1),右下角視為格點(105
,105)
'>(105,105)(105,105)。
有了這麼大的桌子,小x就可以肆意地丟垃圾:小x丟的垃圾既不會堆疊,也不會相鄰(若兩塊垃圾在上下左右及斜對角方向有接觸,則為相鄰)
看著這麼大的桌子被用來丟垃圾,你不禁發出了疑問:已知哪些格點被垃圾覆蓋,那麼小x一共丟了多少垃圾?
第一行乙個正整數n(1≤n≤10
6)'>n(1≤n≤106)n(1≤n≤106),代表有幾個格點被垃圾覆蓋。
接下來n行,每行兩個正整數xi,
yi(1
≤xi,
yi≤10
5)'>xi,yi(1≤xi,yi≤105)xi,yi(1≤xi,yi≤105),代**點(xi
,yi)
'>(xi,yi)(xi,yi)被垃圾覆蓋。
輸出一行,乙個正整數,代表小x共丟了多少塊垃圾。示例1
複製
15複製1 12 2
1 23 4
4 34 4
6 66 4
6 53 7
2 15 6
3 34 6
4 7
2這裡直接dfs容易掛,巧妙用到set
**:#include
#include
using namespace std;
set>st;
int a[8]=;
int b[8]=;
void dfs(int x,int y)
int main()
set>::iterator it;
while(!st.empty())
cout樣例示意圖如下(為了方便觀察,格點之間留了空隙)
vim巧妙用法
1.塊複製 按ctrl v鍵,編輯框最下方將出現 可視 塊 字樣 使用方向鍵移動游標,選擇矩形區域內的文字 y 鍵複製文字 d 鍵剪下文字 p 鍵貼上文字 按shift v鍵,多行選擇 2.分屏 1 水平分屏 vim on file1 file2 o 水平 n 檔案數 切換 ctrl w w 水平分...
set集合容器的妙用(用於去重,排序)
set中自定義比較函式 使用insert 將元素插入到集合中去的時候,集合會根據設定的比較函式將該元素放到該放的節點上去。在定義集合的時候,如果沒有 指定比較函式,那麼採用預設的比較函式 按鍵值又小到大的順序插入元素 編寫比較函式的兩張方法 1.如果元素不是結構體,那麼可以編寫比較函式。includ...
Set方法的妙用
想到很多任務具都是通過get set方法進行乙個反射呼叫,然後實現轉換 那麼我們是否可以通過對get set方法的修改,對bean進行乙個資料的轉換呢?test public void test324 原生類 data allargsconstructor noargsconstructor pub...