文章

1

粉丝

61

获赞

1

访问

1.4k

头像
三叉树 题解:
P1492 北京航空航天大学2019年机试题
发布于2023年5月13日 23:03
阅读数 1.4k

#include<iostream>

#include<vector>

#include<algorithm>

using namespace std;

int n,m;

 

//此处叶子节点的id不会超过100,而分支节点数目的id>100

const int N1=100010;

const int N2=110;


 

struct node{

    int id;

    int rank;

};

 

bool cmp(node a,node b){

    if(a.rank!=b.rank) return a.rank<b.rank;

    else return a.id<b.id;

}

 

//树的父亲表示法

int fa[N1];

//所有待排序的叶子节点

vector<node> nodeList;



//寻找从起点到当前点的最短路,实际就是找到父亲,一层一层自底向上

vector<int> findMiniPath(int v){

 

    vector<int> pre;

 

    while(fa[v]!=100){

        pre.emplace_back(fa[v]);

        v=fa[v];

    }

    if(fa[v]==100) pre.emplace_back(fa[v]);

    return pre;

}

//两个叶子节点的公共祖先

int findCommonAncestor(int a,int b){

    vector&l...

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发