題面傳送門
第一次一遍過國集紫題。好激動。
一看就是樹剖,只不過操作有點多。
把每條邊的權值放在兒子節點即可。
對於取相反數放懶標記即可。
其他是樹剖正常操作。
**實現:
#include
#include
#define max(a,b) ((a)>(b)?(a):(b))
#define min(a,b) ((a)<(b)?(a):(b))
using
namespace std;
int n,m,k,sx,sy,sz,x[
200039
],y[
200039
],z[
200039
],son[
200039
],siz[
200039
],d[
200039
],top[
200039
],id[
200039
],idea,fa[
200039
],flag[
800039
],smax[
800039
],smin[
800039
],sum[
800039];
char _s;
struct yyy
;struct ljb
; h[x]
=head;
}}s;
inline
void
swap
(int
&x,int
&y)inline
void
push
(int l,
int r,
int now)
inline
void
hebing
(int now)
inline
void
get1
(int x,
int z,
int l,
int r,
int now)
if(flag[now]
)push
(l,r,now)
;int m=
(l+r)
>>1;
if(x<=m)
get1
(x,z,l,m,now<<1)
;else
get1
(x,z,m+
1,r,now<<1|
1);hebing
(now)
;return;}
inline
void
get2
(int x,
int y,
int l,
int r,
int now)
if(flag[now]
)push
(l,r,now)
;int m=
(l+r)
>>1;
if(x<=m)
get2
(x,y,l,m,now<<1)
;if(y>m)
get2
(x,y,m+
1,r,now<<1|
1);hebing
(now);}
inline
intfind1
(int x,
int y,
int l,
int r,
int now)
inline
intfind2
(int x,
int y,
int l,
int r,
int now)
inline
intfind3
(int x,
int y,
int l,
int r,
int now)
inline
void
dfs1
(int x,
int last)
cur=tmp.z;}}
inline
void
dfs2
(int x,
int last)
cur=s.h[x]
;while
(cur!=-1
)}inline
void
gets1
(int x,
int y,
int z)
inline
void
gets2
(int x,
int y)
if(d[x]
>d[y]
)swap
(x,y)
;get2
(id[x]+1
,id[y],1
,n,1);
}inline
intfinds1
(int x,
int y)
if(d[x]
>d[y]
)swap
(x,y)
;return ans+
find1
(id[x]+1
,id[y],1
,n,1);
}inline
intfinds2
(int x,
int y)
if(d[x]
>d[y]
)swap
(x,y)
; tot=
find2
(id[x]+1
,id[y],1
,n,1);
return
max(ans,tot);}
inline
intfinds3
(int x,
int y)
if(d[x]
>d[y]
)swap
(x,y)
; tot=
find3
(id[x]+1
,id[y],1
,n,1);
return
min(ans,tot);}
intmain()
else
if(_s==
'm')
else
}else
if(_s==
'c')
else
}}
不得不說這道題5k5k
5k**真是毒瘤。
P1505 國家集訓隊 旅遊
題目鏈結 這道題其實還是比較好想的,同樣是邊權問題。我們需要維護最大值,最小值,和。最坑的地方就是路徑上的所有數變相反數,其實這個就是把區間和 1,區間最大 1,區間最小 1,最後pushdown的時候將取反標記 1,接下來一系列都是常規操作。而這裡還要記住,單點修改時也要下傳lazy標記。而我在跳...
P1505 國家集訓隊 旅遊
ray 樂忠於旅遊,這次他來到了t 城。t 城是乙個水上城市,一共有 n 個景點,有些景點之間會用一座橋連線。為了方便遊客到達每個景點但又為了節約成本,t 城的任意兩個景點之間有且只有一條路徑。換句話說,t 城中只有n 1 座橋。ray 發現,有些橋上可以看到美麗的景色,讓人心情愉悅,但有些橋狹窄泥...
題解 P1505 國家集訓隊 旅遊
這篇題解主要講 實現,思路可能需要照著 理解,請慎重閱讀 兩張掛了,重新傳了一遍。最後 寫出來3.5kb,不到150行,相對來說還是挺短的.給定一棵 n 個節點的樹,邊帶權,編號 0 sim n 1 需要支援五種操作 保證任意時刻所有邊的權值都在 1000,1000 內。前置知識 樹鏈剖分。主要講 ...