題目鏈結
此題是並查集。考慮到水位不斷**,所以將時間倒轉。先統計最後一天的聯通塊個數,每一天浮出水面的塊進行計算。複雜度o(玄學)。
**如下
#include#include#include
using
namespace
std;
short u[5]=;
short w[5]=;
intn,m;
inline
long
long
read()
while
(isdigit(ch))
return num*f;
}struct
point
}mp[
10000000
];int
num;
int map[3001][3001
];int que[1000000
];int ans[1000000
];int father[10000000
];bool jd[3001][3001
];int find(int
x)inline
void union(int x,int
y)inline
int query(int i,int
j)int
main();
map[i][j]=s;
} sort(mp+1,mp+num+1
);
int t=read();
for(int i=1;i<=t;++i) que[i]=read();
int cnt=1;
for(int i=t;i>=1;--i)
}cnt++;
}}
for(int i=1;i<=t;++i)printf("
%d "
,ans[i]);
return0;
}
並查集 島嶼數量
解答參考 島嶼數量官方解答 問題描述 給你乙個由 1 陸地 和 0 水 組成的的二維網格,請你計算網格中島嶼的數量。島嶼總是被水包圍,並且每座島嶼只能由水平方向和 或豎直方向上相鄰的陸地連線形成。此外,你可以假設該網格的四條邊均被水包圍。示例 1 輸入 grid 1 1 1 1 0 1 1 0 1 ...
1487 島嶼3 並查集)
description h國正在進行一項持續n周的填海造島工程。整片工程海域可以被看作是1000x1000的網格。每週都有一塊1x1的單位方格海域被填成陸地。如果我們將連成一片的陸地 一塊單位方格與它上下左右4個單位方格是相連的 視為島嶼,h國想監測每週末整片海域中一共存在有多少個島嶼,以及這些島嶼...
200 島嶼數量(並查集 DFS)
200.島嶼數量 方法一 dfs或bfs 遍搜尋遍改變,訪問陣列也不需要 class solution,int r int c public intnumislands char grid return res public void dfs int i,int j,char grid return...