help
查看原帖
help
212423
FrozenDream楼主2022/3/16 20:27

rt

#include<bits/stdc++.h>
using namespace std;
long long n,x[100005],y[100005],f[100005],ans,r[100005];
void dfs(long long rs,long long jd,long long city){
    if(jd>=n){
        cout<<ans;
        return;
    }
    for(int i=1;i<=n;i++){
        if(x[i]==city&&f[y[i]]==0){
            f[y[i]]++;
            ans+=(rs-1)/r[city];
            dfs(rs-1,++jd,y[i]);
        }
    }
}
int main(){
	//freopen("P7148_2.in","r",stdin);
	//freopen("P7148_2.out","w",stdout);
    cin>>n;
    for(int i=1;i<n;i++){
        cin>>x[i]>>y[i];
    }
    int o=1;
    for(int i=1;i<=n;i++){
        r[x[i]]++;
    }
    while(o<n){
        o*=2;
        ans++;
    }
    dfs(o,1,1);
}

2022/3/16 20:27
加载中...