比赛 2024暑期C班集训4 评测结果 AAAAAWWWWW
题目名称 飘雪圣域 最终得分 50
用户昵称 小金 运行时间 0.080 s
代码语言 C++ 内存使用 2.30 MiB
提交时间 2024-07-04 11:22:46
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int n,q,e[2010][2],f[2010],l,r,b[2010],ans;
int find(int x)
{
    if(f[x]==x) return x;
    return f[x]=find(f[x]);
}
void hb(int x,int y)
{
    int fx=find(x);
    int fy=find(y);
    if(fx!=fy)
    {
        f[fx]=fy;
    }
}
void jx()
{
    for(int i=1;i<n;i++)
    {
        if(e[i][0]>=l&&e[i][0]<=r&&e[i][1]>=l&&e[i][1]<=r)
        {
            hb(e[i][0],e[i][1]);
        }
    }
}
int main()
{
    freopen("icekingdom.in","r",stdin);
    freopen("icekingdom.out","w",stdout);
    scanf("%d%d",&n,&q);
    for(int i=1;i<n;i++)
    {
        scanf("%d%d",&e[i][0],&e[i][1]);
    }
    for(int i=1;i<=q;i++)
    {
        scanf("%d%d",&l,&r);
        for(int j=1;j<=n;j++)
        {
            f[j]=j;
        }
        memset(b,0,sizeof(b));
        jx();
        ans=0;
        for(int j=l;j<=r;j++)
        {
            int fa=find(f[j]);
            if(b[fa]==0)
            {
                ans++;
            }
            b[fa]=1;
        }
        printf("%d\n",ans);
    }
    return 0;
}