Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
38661 Chasing2575 【J】T3 C++ 解答错误 0 9 MS 23688 KB 783 2025-10-18 15:29:35

Tests(0/51):


#include <bits/stdc++.h> using namespace std; int n,tri[1000005]; vector<int> v[1000005]; int search(int now,int pre){ int sum=1; for(int i=0;i<v[now].size();i++){ if(v[now][i]==pre) continue; sum+=search(v[now][i],now); }return sum; } void find(){ } int main(){ cin>>n; int z; for(int i=2;i<=n;i++){ cin>>z; v[i].push_back(z); v[z].push_back(i); } int cnt=0; for(int i=1;i<=n;i++){ if(v[i].size()==3) tri[++cnt]=i; if(v[i].size()>3){ cout<<0; return 0; } } if(cnt==0){ cout<<n*n-1; return 0; } if(cnt==1){ int x1,x2,x3; x1=search(v[tri[1]][0],tri[1]); x2=search(v[tri[1]][1],tri[1]); x3=search(v[tri[1]][2],tri[1]); cout<<x1*x2+x1*x3+x2*x3; return 0; }else{ } return 0; } //


测评信息: