可以使用樹剖 nlog^2n 卡常後能過 就是碼量有點大
詳解在這裡:
#include#define r register
using namespace std;
const int maxn=3e5+5;
char *p;
void qread()
char get_char()
void readint(int &x)
for(;;)
x*=f;
}struct rmq
void pushdown(int x)
void modify(int ql,int qr,int l,int r,int x,int val)
int m=(l+r)>>1;
pushdown(x);
if(ql<=m)modify(ql,qr,l,m,x<<1,val);
if(mqr)return -1;
if(ql<=l&&r<=qr)return t[x];
int m=(l+r)>>1,ret=-1;
pushdown(x);
if(ql<=m)ret=max(ret,query(ql,qr,l,m,x<<1));
if(mqr)return;
if(ql<=l&&r<=qr)
int m=(l+r)>>1;
pushdown(x,m-l+1,r-m);
if(ql<=m)modify(ql,qr,l,m,x<<1,val);
if(mqr)return 0;
if(ql<=l&&r<=qr)return t[x];
int m=(l+r)>>1,ret=0;
pushdown(x,m-l+1,r-m);
if(ql<=m)ret+=query(ql,qr,l,m,x<<1);
if(mdep[top[v]])swap(u,v);
ret+=t.query(id[top[v]],id[v],1,n,1);
v=fa[top[v]];
}if(dep[u]>dep[v])swap(u,v);
ret+=t.query(id[u]+1,id[v],1,n,1);
return ret;
}int ans,ori;
void go(int u,int v)
if(dep[u]>dep[v])swap(u,v);
while(u!=v)
}vector>chain[maxn];int csz;
void makechain(int u,int v)
if(dep[u]>dep[v])swap(u,v);
int st=id[u]+1,ed=id[v];if(st<=ed)chain[csz].push_back(make_pair(st,ed));
csz++;
}vector>query;
vectorqans;
int mem;
void prepare()
void solve()
ori=ans;
for(r int i=0;i或者使用樹上差分
check函式:check(t)
設路徑長度超過t的路徑的總數為s,如果一條邊被經過恰好s次,且maxlen(最長路徑長度)-edgelen<=t 那麼就可行
(卡常好煩)
#include#define r register
using namespace std;
const int maxn=3e5+5;
char *p;
void qread()
char get_char()
void readint(int &x)
if(ch<'0'||ch>'9');else break;
}for(;;)
x*=f;
}int n,m;
struct edge
edge[maxn<<3];int ec;
int head[maxn];
void addedge(int u,int v,int l)
//--------------------lca
int fa[maxn];
int log[maxn<<3];
int st[21][maxn<<3];
int ord[maxn<<2],ptr,in[maxn],dep[maxn];
void dfs(int x,int f)
}int query(int x,int y)
}sum(root);
int f=0;
for(r int i=1;i<=n;i++)}}
return f;
}void solve()
else l=m+1;
}printf("%d\n",ans);
}int main()
dfs(root,root);getlen(root,0);bld();
for(int i=0;i<=20;i++)
for(r int i=1,t=0;i<=maxn<<1;i++)
log[i]=t;
}for(r int i=1;i<=m;i++)
prepare();
solve();
return 0;
}
NOIP2016提高A組模擬9 9 運輸妹子
小軒軒是一位非同一般的的大農 lao 場 si 主 ji 他有一大片非同一般的農田,並且坐落在一條公路旁 可以認為是數軸 在他的農田裡種的東西也非同一般 不是什麼水稻小麥,而是妹子。在小軒軒的細心培育下,他的大片農田都要結出妹子啦!但是他的農田分布實在是太廣闊了,他擔心自己的妹子會令路過的人想入非非...
NOIP2016提高A組模擬9 9 運輸妹子
description 小軒軒是一位非同一般的的大農 lao 場 si 主 ji 他有一大片非同一般的農田,並且坐落在一條公路旁 可以認為是數軸 在他的農田裡種的東西也非同一般 不是什麼水稻小麥,而是妹子。在小軒軒的細心培育下,他的大片農田都要結出妹子啦!但是他的農田分布實在是太廣闊了,他擔心自己的...
NOIP2016提高A組模擬9 9 運輸妹子
description 小軒軒是一位非同一般的的大農 lao 場 si 主 ji 他有一大片非同一般的農田,並且坐落在一條公路旁 可以認為是數軸 在他的農田裡種的東西也非同一般 不是什麼水稻小麥,而是妹子。在小軒軒的細心培育下,他的大片農田都要結出妹子啦!但是他的農田分布實在是太廣闊了,他擔心自己的...