wa10分码风优良 请调 谢谢
查看原帖
wa10分码风优良 请调 谢谢
768325
Herbie_ZHB楼主2023/12/30 00:33
#include<bits/stdc++.h>
using namespace std;
int T,n,k,sum[100010],ans;
vector<int> tree[100010];
void dfs(int now,int from){
	sum[now]=1;
	for(int i=0;i<tree[now].size();i++){
		int to=tree[now][i];
		if(to!=from){
			dfs(to,now);
			sum[now]+=sum[to];
		}
	}
	if(sum[now]==k)sum[now]=0,ans++;
}
int main(){
	cin>>T;
	while(T--){
		for(int i=1;i<=100000;i++)tree[i].clear();
		ans=0;
		memset(sum,0,sizeof(sum));
		cin>>n>>k;
		if(n%k){
			cout<<"NO"<<endl;
			continue;
		}
		for(int i=1;i<n;i++){
			int a,b;
			cin>>a>>b;
			tree[a].push_back(b);
			tree[b].push_back(a);
		}
		dfs(1,0);
		if(ans==(n/k)){
			cout<<"YES"<<endl;
		}else cout<<"NO"<<endl;
	}
	return 0;
}
2023/12/30 00:33
加载中...