清華集訓 溫暖會指引我們前行

2022-03-03 17:27:31 字數 1031 閱讀 3326

emmm其實我在uoj上過不去,加的資料我tle了。。。。。。

但是bzoj上還是可以的。。。。。

關於push_up的小trick:初始化的時候給0節點也初始化成最大值,然後push_up的時候不用管自己的左右兒子是否為空,直接返回左右兒子中比較小的乙個就可以了,然後再和自己作比較。qwqwq

**如下:

#include#include#include#include#define maxn 400010

using namespace std;

int n,m,tot;

int s[maxn];

char cur[10];

struct edget[maxn];

struct edge2edge[maxn];

inline int ls(int x)

inline int rs(int x)

inline void push_up(int x)

inline void rotate(int x)

inline void push_down(int x)

}inline void splay(int x)

}inline void access(int x)

inline void makeroot(int x)

inline void split(int x,int y)

inline void cut(int x,int y)

inline void link(int x,int y)

inline int findroot(int x)

int main()

t[edge[i].id+n].tmp=edge[i].a;

t[edge[i].id+n].val=edge[i].b;

link(u,edge[i].id+n),link(v,edge[i].id+n);

}else if(cur[0]=='m')

else

}return 0;

}

BZOJ4736 溫暖會指引我們前行

給定n個點,要維護三種操作 find id u v t l 在u,v點間連一條編號id,溫度t,長度l的邊 保證溫度互不相同 move u v 詢問在u到v的路徑中,溫度從小到大排序後字典序最大的路徑的長度。若不存在路徑,輸出 1 change id l 將編號為id的邊長度改為l sample i...

bzoj 4736 溫暖會指引我們前行

題面lct維護最大生成樹即可 因為溫度互不相同 所以至少大的必須的邊都要走 又不可以多走 因為這題字典序的定義比較奇怪 多了反而不好 即lct上維護路徑和 維護邊的熱度最小 然後到時候替換即可 慶幸自己lct還能1a include include include include define fi...

UOJ 274 溫暖會指引我們前行

傳送門 小r的宿舍樓中有 n nn 個地點和一些路,一條路連線了兩個地點,小r可以通過這條路從其中任意乙個地點到達另外乙個地點。但在剛開始,小r還不熟悉宿舍樓中的任何一條路,所以他會慢慢地發現這些路,他在發現一條路時還會知道這條路的溫度和長度。每條路的溫度都是互不相同的。小r需要在宿舍樓中活動,每次...