比赛 2024暑期C班集训4 评测结果 AAAAATTTTT
题目名称 飘雪圣域 最终得分 50
用户昵称 wzh0425 运行时间 5.187 s
代码语言 C++ 内存使用 6.15 MiB
提交时间 2024-07-04 10:03:02
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
int n,q,hd[200005],nxt[200005],ver[200005],vis[200005],idx,flag;
void add(int x,int y){
    ver[++idx]=y;
    nxt[idx]=hd[x];
    hd[x]=idx;
}
void dfs(int x,int sum,int l,int r){
    vis[x]=1;
    for (int i=hd[x];i;i=nxt[i]){
        int y=ver[i];
        if (!vis[y]&&l<=y&&r>=y){
            dfs(y,1,l,r);
        }
    }
}
int main(){
    freopen("icekingdom.in","r",stdin);
    freopen("icekingdom.out","w",stdout);
    scanf("%d%d",&n,&q);
    for (int i=1;i<=n-1;i++){
        int x,y;
        scanf("%d%d",&x,&y);
        add(x,y);
        add(y,x);
    }
    for (int i=1;i<=q;i++){
        int maxs=0;
        int li,ri;
        memset(vis,0,sizeof(vis));
        scanf("%d%d",&li,&ri);
        for (int j=li;j<=ri;j++){
            if (vis[j]==0){
                dfs(j,1,li,ri);
                maxs++;
            }
        }
        printf("%d\n",maxs);
    }
    return 0;
}