洛谷P2147 SDOI2008 洞穴勘測

2022-05-24 01:36:12 字數 982 閱讀 5940

題目大意:有$n$個洞穴,$m$條指令,指令有三種

$connect\;u\;v$:在$u,v$之間連一條邊

$destroy\;u\;v$:切斷$u,v$之間的邊

$query\;u\;v$:詢問$u,v$是否連通

(資料保證合法)

題解:$lct$(潘佳奇的板子)

卡點:無(潘佳奇的板子)

c++ code:

#include #include #define maxn 10010

using 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 那麼這杯水的溫度就不能再繼續公升高,此時...