我是超連結
因為這題太神而我太sb的緣故,調了好久還是re?棄了棄了。
說個思路吧,下面的**估計也就是個手殘我就是懶得調了打我啊
斷開乙個節點與父節點的連邊時,如果這個點是所在塊的根節點,直接斷掉就行
如果這個點不是所在塊的根節點,那麼就要把這個塊**,這個點以及在塊中的子樹都**到新的塊中
然後是此題卡記憶體 靜態不用想了 開vector吧
#include
#include
#include
#include
#include
using namespace std;
const int n=200005;
const int m=400005;
int nw,tot,nxt[m],point[m],v[m],tot1,nxt1[m],point1[m],v1[m],pos[m],ans,block,cnt,a[m],f[m],visk[m];
bool ml[n];
struct block
void del(int
x) void change(int
x,int
y) int qurry(int
x)
}b[m];
inline int
read()
void addline(int
x,int
y)void addline1(int
x,int
y)void dfs(int
x,int fa)
void findk(int
x,int
y)void find(int
x,inty)}
void push(int
x)void dele(int
x,int fa,int cnt,int gd)
void dle(int
x)int main()
for (int i=1;i<=n;i++) a[i]=read();
block=sqrt(n);nw=1;visk[0]=1;
dfs(1,0);m=read();
while(m--)
else
}
}
}}
BZOJ4458 GTY的OJ(樹上超級鋼琴)
點此看題面 大致題意 給你一棵樹,讓你求出每乙個節點向上的長度在 l,r 範圍內的路徑權值和最大的 m 條路徑的權值總和。此題的數列版本,就是比較著名的 bzoj2006 noi2010 超級鋼琴一題了。其實那道題目的思想,完全也可以套到這道題目上。當然,如果你比較強大,寫主席樹等玄學演算法 資料結...
bzoj3720 Gty的妹子樹
我們可以樹上分塊,詳見我部落格中雜文下的根號演算法題庫 然後每個塊維護降序,對於整一塊在子樹內的就可以二分,其餘部分暴力。include include include include define fo i,a,b for i a i b i using namespace std const i...
bzoj3744 Gty的妹子序列
time limit 20 sec memory limit 128 mb submit 967 solved 293 submit status discuss 我早已習慣你不在身邊,人間四月天 寂寞斷了弦。回望身後藍天,跟再見說再見 某天,蒟蒻autumn發現了從 gty的妹子樹 bzoj372...