比赛 2024暑期C班集训4 评测结果 AAAAATTTTT
题目名称 飘雪圣域 最终得分 50
用户昵称 AeeE5x 运行时间 5.256 s
代码语言 C++ 内存使用 9.28 MiB
提交时间 2024-07-04 09:30:11
显示代码纯文本
#include<iostream>
#include<cstring>
#include<vector>
#include<cmath>
#include<queue> 
#define ll long long
using namespace std;
int n,q;
vector<int> mp[200010];
int ed[200010],li,ri;
void f(int x,int m){
	queue<int> que;
	que.push(x);
	ed[x]=m;
	while(!que.empty()){
		int fr=que.front();
		for(int i=0;i<mp[fr].size();i++){
			if(mp[fr][i]<li||mp[fr][i]>ri||ed[mp[fr][i]]) continue;
			ed[mp[fr][i]]=m;
			que.push(mp[fr][i]);
		}
		que.pop();
	}
}
int main(){
    freopen("icekingdom.in","r",stdin);
    freopen("icekingdom.out","w",stdout);
    
    scanf("%d%d",&n,&q);
    for(int i=1;i<n;i++){
    	int a,b;scanf("%d%d",&a,&b);
    	mp[a].push_back(b);
    	mp[b].push_back(a);
	}
	while(q--){
		int ans=0;
		scanf("%d%d",&li,&ri);
		for(int p=li;p<=ri;p++) if(!ed[p]) ans++,f(p,ans);
		printf("%d\n",ans);
		memset(ed,0,sizeof ed);
	}
    
    return 0;
}