lzyqwq @ 2023-02-22 10:18:52
#include<bits/stdc++.h>
#define N 10005
using namespace std;
int n,m,q[105],sz[N],sum,rt,mx[N],d[N],cnt,dd[N];
vector<pair<int,int>>g[N];
queue<int>p;
bool ok[10000005],del[N],ans[105];
void gravity(int u,int fa){
sz[u]=1;
mx[u]=0;
for(auto[v,w]:g[u]){
if((v^fa)&&!del[v]){
gravity(v,u);
mx[u]=max(mx[u],sz[v]);
sz[u]+=sz[v];
}
}
mx[u]=max(mx[u],sum-sz[u]);
if(mx[u]<mx[rt]){
rt=u;
}
}
void dis(int u,int fa){
dd[++cnt]=d[u];
for(auto[v,w]:g[u]){
if((v^fa)&&!del[v]){
d[v]=d[u]+w;
dis(v,u);
}
}
}
void treedivide(int u,int fa){
ok[0]=del[u]=1;
p.push(0);
for(auto[v,w]:g[u]){
if((v^fa)&&!del[v]){
d[v]=w;
dis(v,u);
for(int i=1;i<=cnt;++i){
for(int j=1;j<=m;++j){
if(q[j]>=dd[i]){
ans[j]|=ok[q[j]-dd[i]];
}
}
}
for(int i=1;i<=cnt;++i){
if(dd[i]<=1e7){
p.push(dd[i]);
ok[dd[i]]=1;
}
}
cnt=0;
}
}
while(p.size()){
ok[dd[p.front()]]=0;
p.pop();
}
for(auto[v,w]:g[u]){
if((v^fa)&&!del[v]){
sum=sz[v];
mx[rt=0]=1e9;
gravity(v,u);
treedivide(rt,0);
}
}
}
int main(){
scanf("%d%d",&n,&m);
for(int i=1,u,v,w;i<n;++i){
scanf("%d%d%d",&u,&v,&w);
g[u].emplace_back(v,w);
g[v].emplace_back(u,w);
}
sum=n;
mx[0]=1e9;
gravity(1,0);
for(int i=1;i<=m;++i){
scanf("%d",&q[i]);
}
treedivide(rt,0);
for(int i=1;i<=m;++i){
if(ans[i]){
puts("AYE");
}else{
puts("NAY");
}
}
}
by fresh_boy @ 2023-02-22 10:33:22
洛谷标题界逆流而上的一股清流
by 5k_sync_closer @ 2023-02-22 10:37:28
@蒟蒻·廖子阳 55~58 行改成
while(p.size()){
ok[p.front()]=0;
p.pop();
}
另外,unordered_set
好写喵,为什么贺 oi wiki 喵
by lzyqwq @ 2023-02-22 18:37:20
@5k_sync_closer 我没有贺喵 我是看的NC视频 然后今天信息课上对着oiwiki和第二篇题解打了一遍喵
by lzyqwq @ 2023-02-22 18:42:32
@5k_sync_closer 但据说unordered_map会被卡成O(n)
by 5k_sync_closer @ 2023-02-22 18:45:59
@蒟蒻·廖子阳 是 unordered_set
,而且卡了就随机扰动不就行了
by lzyqwq @ 2023-02-22 18:47:33
@5k_sync_closer 草我眼瞎
by lzyqwq @ 2023-02-22 18:47:57
@ice_in_sky 其实我是btd