題意:給定一棵n個點、n-1條邊的樹,樹上的第i條邊有權值w[i] 。
q次詢問,每次詢問為下列兩種操作之一:
1:增加乙個點對 x,y。
2:查詢第x條邊權值為y時所有點對之間的距離的最大值。
題解:還沒完全想清楚,先占個坑,最近來補。
下附暫時沒有想清的ac的**...
#include#include#include#include#define lson (now<<1)
#define rson ((now<<1)|1)
#define mid ((nl+nr)>>1)
#define maxn 100005
using namespace std;
int root,mod,q;
int n,cnt,tot=1,top;
int head[maxn],nex[maxn<<1],val[maxn<<1],to[maxn<<1];
void add(int x,int y,int z)
//以下為線段樹
pairdat[maxn<<2];
void update(int ql,int qr,int add,int nl,int nr,int now,int op)
if(ql<=mid) update(ql,qr,add,nl,mid,lson,op);
if(midquery(int pos,int nl,int nr,int now)
//以下為樹鏈剖分
int dfn[maxn],dis[maxn],fa[maxn][30],bel[maxn<<1];
int siz[maxn],anc[maxn],dep[maxn],in[maxn],out[maxn];
void dfs1(int now,int pa)
}void dfs2(int now,int pa)
int lca(int p,int q)
void add(int x,int y)
else }
void query2(int x,int y)
int main()
{ scanf("%d%d",&n,&q);
for(int i=1;i
snoi省選模擬賽 day3t1 路徑規劃
kac在數軸上有n片西瓜地。第 i片的座標是x i 注意 x並沒有排序 任意兩片西瓜地座標不同。有一天他要給這n片西瓜地澆水。初始他在x 1 的位置。他必須按1.n 的順序澆水,也就是說,必須先去x 1 再去x 2 最後到x n 他可以沿著座標軸正方向或者負方向走 給西瓜地澆水不需要花費時間。每走1...
省選模擬賽Day4T3迂迴
problem problem problem problem problem problem problem problem 3 迂迴 tour tour tour tour tour tour 題目描述 題目描述 給定一有向圖,邊長均為 1,求 長度 小於 k的環個數 mod m 保證 有向圖中...
省選模擬賽03 16 T3 超級樹
目錄一棵 k 超級樹 k supertree 可按如下方法得到 取一棵深度為 k 的滿二叉樹,對每個節點向它的所有祖先連邊 如果這條邊不存在的話 例如,下面是乙個 4 超級樹 請統計一棵 k 超級樹 中有多少條不同的簡單有向路徑,對 mod 取模。input 一行兩整數 k,mod。output 一...