比赛 2024暑期C班集训4 评测结果 AAAAATTTTT
题目名称 飘雪圣域 最终得分 50
用户昵称 Untitled 运行时间 5.157 s
代码语言 C++ 内存使用 7.22 MiB
提交时间 2024-07-04 09:49:16
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;

int const N=400010;
int n,q,idx,res;
int head[N],Next[N],ver[N];
int l,r;

void edge(int a,int b){
    Next[++idx]=head[a],head[a]=idx,ver[idx]=b;
    Next[++idx]=head[b],head[b]=idx,ver[idx]=a;
    return;
}

void dfs(int x,int f){
    if (l<=x && x<=r && (f<l || r<f)) res++;
    for (int i=head[x];i;i=Next[i]){
        if (ver[i]==f) continue;
        dfs(ver[i],x);
    }
    return;
}

int main(){
    freopen("icekingdom.in","r",stdin);
    freopen("icekingdom.out","w",stdout);
    
    int a,b;
    scanf("%d %d",&n,&q);
    for (int i=1;i<n;i++){
        scanf("%d %d",&a,&b);
        edge(a,b);
    }
    for (int i=1;i<=q;i++){
        res=0;
        scanf("%d %d",&l,&r);
        dfs(1,0);
        printf("%d\n",res);
    }
    
    return 0;
}