題目大意:有$n$個洞穴,$m$條指令,指令有三種
$connect\;u\;v$:在$u,v$之間連一條邊
$destroy\;u\;v$:切斷$u,v$之間的邊
$query\;u\;v$:詢問$u,v$是否連通
(資料保證合法)
題解:$lct$(潘佳奇的板子)
卡點:無(潘佳奇的板子)
c++ code:
#include #include #define maxn 10010using namespace std;
int son[2][maxn], fa[maxn], tg[maxn];
inline bool get(int x, int flag = 1)
inline bool is_root(int x)
inline void swap(int &x, int &y)
inline void rotate(int x)
inline void pushdown(int x)
}int st[maxn], top;
inline void splay(int x)
inline void access(int x)
inline void make_root(int x)
inline void split(int x, int y)
inline void link(int x, int y)
inline void cut(int x, int y)
inline bool query(int x, int y)
int n, q, x, y;
char s[30];
int main() else
}return 0;
}
洛谷 P2147 SDOI2008 洞穴勘測
p2147 sdoi2008 洞穴勘測 思路 按時間分治,然後每條邊有乙個存活時間段,按存活時間段將邊加入劃分樹,然後在劃分樹上分治,用可撤銷並查集維護連通性。pragma gcc optimize 2 pragma gcc optimize 3 pragma gcc optimize 4 incl...
洛谷 P1984 SDOI2008 燒水問題
題目描述 把總質量為1kg的水分裝在n個杯子裡,每杯水的質量均為 1 n kg,初始溫度均為0 現需要把每一杯水都燒開。我們可以對任意一杯水進行加熱。把一杯水的溫度公升高t 所需的能量為 4200 t n j,其中,j 是能量單位 焦耳 如果一旦某杯水的溫度達到100 那麼這杯水的溫度就不能再繼續公...
洛谷 P1984 SDOI2008 燒水問題
把總質量為1kg的水分裝在n個杯子裡,每杯水的質量均為 1 n kg,初始溫度均為0 現需要把每一杯水都燒開。我們可以對任意一杯水進行加熱。把一杯水的溫度公升高t 所需的能量為 4200 t n j,其中,j 是能量單位 焦耳 如果一旦某杯水的溫度達到100 那麼這杯水的溫度就不能再繼續公升高,此時...