代码求条
查看原帖
代码求条
1311638
Robin_lover楼主2025/7/28 08:14
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define ul u<<1
#define ur u<<1|1 
const int N=1e6;
const int mod=1e9+7;
int he[N],ne[N],e[N],idx;
int n,m,siz[N],f;
void add(int x,int y){
    e[idx]=y;
    ne[idx]=he[x];
    he[x]=idx++;
}
void dfs(int u,int fa){
    siz[u]=1;
    for(int i=he[u];~i;i=ne[i]){
        int v=e[i];
        if(v==fa){
            continue;
        }
        dfs(v,u);
        siz[u]+=siz[v];
    }
    if (siz[u] == m) {
      siz[u] =0;
      f++;
    }
}
int main(){
    int T;
    cin>>T;
    while(T--){
        memset(he,-1,sizeof(he));
        memset(siz,0,sizeof(siz));
        idx=0;
        cin>>n>>m;
        if(n%m!=0){
            cout<<"NO\n";
            continue;
        }
        f=0;
        for(int i=1;i<n;i++){
            int x,y;
            scanf("%d%d",&x,&y);
            add(x,y);
            add(y,x);
        }
        dfs(1,0);
        if(f==n/m){
            printf("YES\n");
        }else{
            printf("NO\n");
        }
    }
    return 0;
}

只AC了第9个测试点

2025/7/28 08:14
加载中...