首页 > 其他分享 >树与图的深度优先遍历

树与图的深度优先遍历

时间:2024-02-07 11:03:14浏览次数:30  
标签:优先 遍历 idx int res sum ans ne 深度

树与图的深度优先遍历_ci

树与图的深度优先遍历_子树_02

#include <iostream>
#include <algorithm>
#include <cstring>
 
using namespace std;
 
const int N = 100010, M = N * 2;
 
int n;
int h[N], e[M], ne[M], idx;
bool st[N];
 
int ans = N;
 
void add(int a, int b)
{
    e[idx] = b, ne[idx] = h[a], h[a] = idx ++; 
}
 
// 以u为根的子树中点的数量
int dfs(int u)
{
    st[u] = true; // 标记一下,已经被搜过了
 
    int sum = 1, res = 0; //sum 当前子树的大小, res 把这个点删除后每一个连通块大小的最大值 
    for(int i = h[u]; i != -1; i = ne[i])
    {
        int j = e[i];   
        if(!st[j]) 
        {
            int s = dfs(j); // 当前子树的大小
            res = max(res, s); 
            sum += s;
        }
    }
 
    res = max(res, n - sum);
    ans = min(ans, res);
    return  sum;
}
 
int main()
{
    cin >> n; 
    memset(h, -1, sizeof h);
 
    for(int i = 0; i < n - 1; i++)
    {
        int a, b;
        cin >> a >> b;
        add(a, b), add(b, a);
    }
    dfs(1);
 
    cout << ans << endl;
 
    return 0;
}

标签:优先,遍历,idx,int,res,sum,ans,ne,深度
From: https://blog.51cto.com/u_16492348/9634930

相关文章

  • (14/60)二叉树理论基础、递归遍历、迭代遍历、统一迭代
    二叉树理论基础分类满二叉树:只有度为0和度为2的结点,且度为0结点在同一层上(每一层的结点都是满的)。完全二叉树:除了底层外其他层结点都是满的(底层当然也可以是满的),且底层结点从左往右连续不断。二叉搜索树:树的每个结点满足:左子树所有结点值均小于根结点的值右子树所有......
  • 代码随想录算法训练营第十四天| 理论基础 递归遍历 迭代遍历 统一迭代
    理论基础代码随想录(programmercarl.com)二叉树的链接形式定义(防忘)structTreeNode{intval;TreeNode*left;TreeNode*right;TreeNode(intx):val(x),left(NULL),right(NULL){}};额外补充(关于unordered_map和map)unordered_map和map类似,都是存储......
  • 深度学习网络的感受野与卷积核
    https://www.bilibili.com/read/cv27451493/?jump_opus=1https://zhuanlan.zhihu.com/p/484653541?utm_id=0一般认为,网络越深,卷积核越大,感受野也就越大。同时,也会丢失一定的小尺度捕捉能力。在《Residualnetworksbehavelikeensemblesofrelativelyshallownetworks》中,说......
  • 代码随想录算法训练营第十四天 | 94. 二叉树的中序遍历,144.二叉树的前序遍历,145.二叉
    145.二叉树的后序遍历 已解答简单 相关标签相关企业 给你一棵二叉树的根节点 root ,返回其节点值的 后序遍历 。 示例1:输入:root=[1,null,2,3]输出:[3,2,1]示例2:输入:root=[]输出:[]示例3:输入:root=[1]输出:[1] 提示:树中节点......
  • 图片传输和图片防遍历技术方案
    图片传输和图片防遍历技术方案需求描述:1.如果用一个接口列表,可能报文太长了,实现URL是短期有效且防遍历的2.接口文件流,拆两个接口,一个接口返回文件列表,另一个根据文件ID返回文件流3.如果都是图片,base64通过接口来传输图片也可以。4.发送端和接收端可以对文件做MD5加密,这样可以验证......
  • 目录遍历(建立目录树,记录目录属性)仅适用于小样本
    directory.h#pragmaonce#include<windows.h>#include<tchar.h>#include<stdio.h>#include<tchar.h>#include<string>#include<stack>#include<codecvt>#include<vector>#defineFILE_NOT_IN_NODE-1classDirTreeNode{p......
  • 谷歌新版本跨域错误深度剖析与解决:request client is not a secure context and the
    原文地址:https://blog.csdn.net/Flywithdawn/article/details/128253604 快速解决: ======================================================最近在测试http服务时,谷歌浏览器报了以下错误“Therequestclientisnotasecurecontextandtheresourceisinmore-privat......
  • 深度学习-DNN深度神经网络-反向传播02-python代码实现nn-41
    目录1.举例2.python实现1.举例2.python实现importnumpyasnpfromsklearn.datasetsimportfetch_mldatafromsklearn.utils.extmathimportsafe_sparse_dotdeftrain_y(y_true):y_ohe=np.zeros(10)y_ohe[int(y_true)]=1returny_ohemnist......
  • 深度优先遍历例题(排列数字)
    给定一个整数n,将数字1~n排成—排,将会有很多种排列方法。现在,请你按照字典序将所有的排列方法输出。输入格式共一行,包含一个整数n。输出格式按字典序输出所有排列方案,每个方案占一行。数据范围1≤n≤7#include<iostream>usingnamespacestd;constintN=10;intn;int......
  • 作为国产深度学习框架中分布式计算特性最强大的OneFlow的最大缺点是什么?
    OneFlow是国产深度学习框架中分布式计算特性最强大的,因为其原生支持分布式特性,世界上的历史中的深度学习框架唯一可以做到这一点的也就只有Google的TensorFlow和Jax了,虽然有人说Google的分布式最强也有人说Google的分布式一般,但是毋庸置疑的是OneFlow一定是国产深度学习框架中分布......