c++贪心80分,请大佬赐教
查看原帖
c++贪心80分,请大佬赐教
685875
Novel8533楼主2023/4/3 19:48
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<string>
#include<cstring>
using namespace std;

const int maxn = 1e6 + 15;
struct node{
    int l, r;
}L[maxn];//用来存儿子节点
int vis[maxn + 1], n;//vis数组记录深度

int cmp(int a, int b){
    return a > b;
}//cmp函数用作排大小

int main(){
    scanf("%d",&n);
    vis[1] = 1;//先把vis[1]赋值为1
    for(int i = 1; i <= n; i++){
        int l, r;
        scanf("%d%d",&l,&r);
        L[i].l = l; L[i].r = r;//读入
        if(l){//如果l不为0, 那么他的深度就是父节点深度加1
            vis[l] = vis[i] + 1;
        }
        if(r){//与l同理
            vis[r] = vis[i] + 1;
        }
    }
    sort(vis + 1, vis + 1 + maxn, cmp);//排序,vis[1]为最大
    printf("%d\n",vis[1]);//输出
    return 0;
}

这样的代码只得了80分,不知道哪里出问题了,请大佬看一看

2023/4/3 19:48
加载中...