比赛 2024暑期C班集训4 评测结果 AAAAATTTTT
题目名称 飘雪圣域 最终得分 50
用户昵称 123 运行时间 5.374 s
代码语言 C++ 内存使用 10.65 MiB
提交时间 2024-07-04 10:36:24
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;
const int N=400010;
int n,q,tot=0,flag[N],head[N],nxt[N],idx[N],ret=0,l,r;
void add(int x,int y)
{
    idx[++tot]=y;
    nxt[tot]=head[x];
    head[x]=tot;
}
void dfs(int now)
{
    for (int i=head[now];i;i=nxt[i])
    {
        int y=idx[i];
        if (l<=y && y<=r && !flag[y])
        {
            flag[y]=1;
            dfs(y);
        }
    }
}
int main() {
    freopen("icekingdom.in","r",stdin);
    freopen("icekingdom.out","w",stdout);
    cin>>n>>q;
    for (int i=1;i<n;i++)
    {
        int x,y;
        scanf("%d%d",&x,&y);
        add(x,y);
        add(y,x);
    }
    while (q--)
    {
        memset(flag,0,sizeof(flag));
        ret=0;
        scanf("%d%d",&l,&r);
        for (int i=l;i<=r;i++)
        {
            if (!flag[i])
            {
                ret++;
                flag[i]=1;
                dfs(i);
            }
        }
        printf("%d\n",ret); 
    }
}