比赛 CSP2023-S模拟赛 评测结果 WWWWWWEEEEEEEEEEEEEE
题目名称 删除题目 最终得分 0
用户昵称 郑霁桓 运行时间 2.752 s
代码语言 C++ 内存使用 12.12 MiB
提交时间 2023-10-17 21:22:03
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
long long n,x,y,ss,b[1005];
struct abc{
    long long f,s[1005],p=0,s1=0;
}a[1005];
long long dfs(long long x){
    b[x]=1;
    long long as=0;
    if(b[a[x].f]==0){
        long long ppp=0;
        for(int i=1;i<=a[a[x].f].s1;i++){
            if(b[i]==0){
                ppp++;
            }
        }
        if(b[a[a[x].f].f]==0){
            ppp++;
        }
        as=max(as,dfs(a[x].f)+ppp-a[x].f);
    }
    for(int i=1;i<=a[x].s1;i++){
        if(b[a[x].s[i]]==0){
            long long ppp=0;
            for(int j=1;j<=a[a[x].s[i]].s1;j++){
                if(b[j]==0){
                    ppp++;
                }
            }
            ppp++;
            long long ass=dfs(a[x].s[i])+ppp-a[a[i].s[i]].f;
            as=max(as,ass);
        }
    }
    b[x]=0;
    return as;
}
int main(){
    freopen("delete.in","r",stdin);
    freopen("delete.out","w",stdout);
    scanf("%lld",&n);
    for(int i=2;i<=n;i++){
       scanf("%lld%lld",&x,&y);
       a[i].f=x;
       a[i].p=y;
       a[x].s[++a[x].s1]=i;
    }
    ss=0;
    for(int i=1;i<=n;i++){
        long long sss=dfs(i);
        ss=max(ss,sss);
    }
    cout<<ss;
    return 0;
}//0 1 0 0 1 1