SHOI2008 堵塞的交通

2022-03-03 16:38:22 字數 1144 閱讀 5911

有一篇超級棒的線段樹+大力分類討論的題解!戳我

可是我還是不會寫這個做法qwqwqwq

這裡提供線段樹分治的寫法。感覺比較不需要智商,就是跑的有點慢了。。。

#include#include#include#include#include#include#include#include#define maxn 200010

using namespace std;

int n,m,cnt;

int fa[maxn],siz[maxn];

char kkk[10];

struct node;

struct queq[maxn];

struct seg

t[maxn<<2];

stacks;

map,int>tim;

inline int ls(int x)

inline int rs(int x)

inline int id(int x,int y)

inline int find(int x)

inline void build(int x,int l,int r)

inline void merge(int x,int y)

); siz[y]+=siz[x];

}inline void del(int x)

}inline void insert(int x,int ll,int rr,int k)

int mid=(l+r)>>1;

if(ll<=mid) insert(ls(x),ll,rr,k);

if(midy2) swap(y1,y2),swap(x1,y2);

int u=id(x1,y1),v=id(x2,y2);

if(u>v) swap(u,v);

if(kkk[0]=='o')

else if(kkk[0]=='c')

else op=2;

q[cnt]=(que);

scanf("%s",kkk);

}for(map,int>::iterator it=tim.begin();it!=tim.end();it++)

solve(1);

return 0;

}

SHOI2008 堵塞的交通

這裡提供幾種不用腦子的演算法 當然是離線的 text 記下每條邊的刪除時間,用 text 維護最大生成樹,每次加進一條邊時,跟原來那條鏈上的做比較,刪除那條刪除時間最短的邊即可。線段樹分治 這個演算法將每條邊的加入和刪除時間加入到線段樹中,所以在遍歷到葉子節點時,那個時刻存在的邊都已經在並查集上了,...

SHOI2008 堵塞的交通

有一天,由於某種穿越現象作用,你來到了傳說中的小人國。小人國的布局非常奇特,整個國家的交通系統可 以被看成是乙個2行c列的矩形網格,網格上的每個點代表乙個城市,相鄰的城市之間有一條道路,所以總共有2c個 城市和3c 2條道路。小人國的交通狀況非常槽糕。有的時候由於交通堵塞,兩座城市之間的道路會變得不...

SHOI2008 堵塞的交通

題目描述 有一天,由於某種穿越現象作用,你來到了傳說中的小人國。小人國的布局非常奇特,整個國家的交通系統可 以被看成是乙個2行c列的矩形網格,網格上的每個點代表乙個城市,相鄰的城市之間有一條道路,所以總共有2c個 城市和3c 2條道路。小人國的交通狀況非常槽糕。有的時候由於交通堵塞,兩座城市之間的道...