0分求助!题目和题解里的样例都能过
查看原帖
0分求助!题目和题解里的样例都能过
1079560
MIZUH楼主2024/7/30 15:26
#include<bits/stdc++.h>
using namespace std;

const int N=1e5+5;
int head[N];
int vis[N];
int n,d,u,v,tot,ans,c;
struct edge{
	int next;
	int to;
}e[N];
void add(int u,int v){
	tot++;
	e[tot].to=v;
	e[tot].next=head[u];
	head[u]=tot;
}
void dfs(int p,int ans){
	if(!p||ans==d){
		return ;
	}
	for(int i=head[p];i;i=e[i].next){
		int b=e[i].to;
		if(!vis[b]&&b){
			vis[b]=1;
			c++;
			dfs(b,ans+1);
			vis[b]=0;
		}
	}
}
int main(){
	cin>>n>>d;
	for(int i=1;i<n;i++){
		cin>>u>>v;
		add(u,v);
		add(v,u);
	}
	vis[1]=1;
	dfs(1,0);
	cout<<c;
	return 0;
}
2024/7/30 15:26
加载中...