前陣子本想一本正經的寫一篇關於字尾樹入門較為詳細的文章,由於博主又懶了,然後……
今天覺得心情愉快,於是突發奇想,要更新一篇部落格,於是就有了這篇部落格……就是這樣。
#include
"cstdio"
#include
"algorithm"
#define maxn (60000+10)
#define ll long long
using
namespace std;
inline
intread()
while
(ch>=
'0'&&ch<=
'9') x=x*
10+ch-
'0',ch=
getchar()
;return x*f;
}int lmaxv[maxn<<2]
,rmaxv[maxn<<2]
,lv[maxn<<2]
,rv[maxn<<2]
,sumv[maxn<<2]
;int t[3]
[maxn]
,s[maxn]
;int ans,a,aa;
int n,m;
void
maintain
(int o,
int l,
int r)
else
if(maxk==s[rv[o<<1]
]&&rv[o<<1]
==lv[o<<1]
)else
}void
build
(int o,
int l,
int r)
int mid=
(l+r)
>>1;
build
(o<<
1,l,mid)
;build
(o<<1|
1,mid+
1,r)
;maintain
(o,l,r);}
void
query
(int o,
int x,
int y,
int l,
int r)
return;}
int mid=
(l+r)
>>1;
if(x<=mid)
query
(o<<
1,x,y,l,mid);if
(y>mid)
query
(o<<1|
1,x,y,mid+
1,r);}
void
change1
(int o,
int x,
int l,
int r)
int mid=
(l+r)
>>1;
if(x<=mid)
change1
(o<<
1,x,l,mid)
;else
change1
(o<<1|
1,x,mid+
1,r)
;maintain
(o,l,r);}
void
change2
(int o,
int x,
int y,
int l,
int r)
int mid=
(l+r)
>>1;
if(mid>=x)
change2
(o<<
1,x,y,l,mid);if
(y>mid)
change2
(o<<1|
1,x,y,mid+
1,r)
;maintain
(o,l,r);}
intmain()
else
else}}
return0;
}
難度還是蠻簡單的,才怪上年我問別人怎麼做時,被mai老師一臉鄙視的罵了一頓。
調的時候犯了4個沙茶錯誤,浪費好多時間,/dk/dk/dk
bzoj3995 SDOI2015 道路修建
題目鏈結 分析 曲神的題解 曲神表示想要結構體版本的 題解最後給出的就是結構體的 bzoj1018的高階版 一開始看到這道題 好像不是很難,用線段樹維護最小生成樹 update的時候直接判斷上下哪一條橫邊比較小,連線即可 然而一下就發現了bug 存在可能性連線點的上下兩條邊都需要連線 那我們就要深入...
bzoj2435 道路修建
道路修建 題目背景 bzoj2435 分析 暴力 dfs 突如其來的傻題 get 直接 dfs,每乙個點對答案的貢獻是,abs n size cur size cur w w 為這個點與父親的連邊的權值 然後就沒有然後了 source created by scarlyw include inclu...
bzoj 2435 道路修建
written with stackedit.在 w 星球上有 n 個國家。為了各自國家的經濟發展,他們決定在各個國家 之間建設雙向道路使得國家之間連通。但是每個國家的國王都很吝嗇,他們只願意修建恰好 n 1 條雙向道路。每條道路的修建都要付出一定的費用,這個費用等於道路長度乘以道路兩端的國家個數之...