首页 > 其他分享 >树的重心 图论

树的重心 图论

时间:2025-01-23 21:20:16浏览次数:1  
标签:图论 重心 int sum cnt long fa ans

#define _CRT_SECURE_NO_WARNINGS
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
const int N = 5e4 + 10;
vector<int>e[N];
int cnt[N], sum, n, id = 1, ans;
void dfs1(int u, int fa ,int d)
{
    sum += d;
    cnt[u] = 1;
    for (auto it : e[u])
    {
        if (it != fa)
        {
            dfs1(it, u, d + 1);
            cnt[u] += cnt[it];
        }
    }
}
void dfs2(int u, int fa, int sum)
{
    if (sum < ans || (sum == ans && id > u))
    {
        id = u;
        ans = sum;
    }
    for (int it : e[u])
    {
        if (it != fa)
        {
            dfs2(it, u, sum - cnt[it] + n - cnt[it]);
        }
    }
}
int main()
{
    ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
    cin >> n;
    for (int i = 1; i <= n - 1; i++)
    {
        int x, y;
        cin >> x >> y;
        e[x].push_back(y);
        e[y].push_back(x);
    }
    dfs1(1, 0, 0);
    ans = sum;
    dfs2(1, 0, sum);
    cout << id << ' ' << ans;
    return 0;
}

标签:图论,重心,int,sum,cnt,long,fa,ans
From: https://www.cnblogs.com/ybjnb/p/18688634

相关文章

  • 树的重心
    一、什么是树的重心所谓树的重心指的是删掉这个点之后可以使所有子树中大小最大的那一个最小。树的重心满足一些性质:性质\(1\):删掉树的重心之后,所有子树的大小不都超过\(\lfloor\frac{n}{2}\rfloor\),\(n\)指树的节点数量。性质\(2\):如果有两个树的重心,那么这两个点一定是......
  • 图论相关问题
    图论相关问题A.P2662牛场围栏同余最短路的板题,会了就没什么。见这篇。B.P4211[LNOI2014]LCA感觉离线处理的技巧得多加磨练。这题的暴力显然就是\(O(nm)\)或\(O(nm\logn)\),暴力枚举\([l,r]\)和\(z\)的LCA的\(\text{dep}\)值,计算即可。那么正解要么就是一次......
  • 图论-岛屿数量问题
    代码随想录笔记-图论岛屿问题内容:题目描述:LeetCode 200.岛屿数量-力扣(LeetCode)(图源自代码随想录官网)本题是经典的图论遍历问题,只要能完成遍历即可,核心在于只要发现一块地,那么标记一下已经走过即可,以上图例输出为 3  -DFS深度优先搜索方法:每次......
  • 图论/连通性
    点边连通度:耳分解:强连通有向图/边双联通无向图从一个点出发,每次加入从集合出发回到集合,中间点不在集合内的环,一定能生成该图。边双强连通双极定向:link割空间与环空间互为正交补。切边等价:模板qoj1351CF1648F树分解:也就是找到一种划分方式,使得每种划分内点......
  • 图论中存在哪些不同的路径?
    在初次接触图论时,许多学习者会感到困惑:为什么有些问题要求路径不能重复经过任何节点或边,而有些问题却允许重复?不同的路径定义如何影响问题的求解?这些问题反映了图论中路径的多样性和复杂性,也为研究者提供了丰富的探索空间。路径的分类及定义在图中,根据路径是否允许重复经过节点......
  • 搜索与图论(三)-最小生成树(Prim、Kruskal)和二分图(染色法、匈牙利法)
    目录一、最小生成树1.Prim算法 2.Kruskal算法二、二分图  1.判断二分图--染色体法 2.求二分图最大匹配--匈牙利算法一、最小生成树1.Prim算法         分为朴素Prim算法和堆优化Prim算法。写法和dijikstra算法类似,堆优化过程也类似,可类比学习。首......
  • 【图论】系列(二)图的连通性
    与矩阵有关的衡量图的连通性的所有指标目录与矩阵有关的衡量图的连通性的所有指标1、邻接矩阵(AdjacencyMatrix)2、拉普拉斯矩阵(LaplacianMatrix)3、广义拉普拉斯矩阵(GeneralizedLaplacianMatrix)4、不可约拉普拉斯矩阵(IrreducibleLaplacianMatrix)5、冗余矩阵......
  • 搜索与图论(二)-最短路问题(dijkstra、Bellman-Ford、SPFA、Floyd)
    目录一、单源最短路问题 1.朴素dijkstra算法O(n²) 2.堆优化Dijkstra算法O(mlogn)3.Bellman-Ford算法O(nm)4.SPFA算法 O(m)/O(nm)应用-判断负环 二、多元最短路问题O(n³)Floyd算法 一、单源最短路问题 问题定义:1.朴素dijkstra算法O(n²)适用于......
  • E92 换根DP+倍增 P5666 [CSP-S2019] 树的重心
    视频链接:E92换根DP+倍增P5666[CSP-S2019]树的重心_哔哩哔哩_bilibili   P5666[CSP-S2019]树的重心-洛谷|计算机科学教育新生态(luogu.com.cn)//换根DP+倍增O(nlogn)#include<iostream>#include<cstring>#include<algorithm>#include<vector>us......
  • 图论乱讲
    因为有个人说我选的题目太难了,所以我决定把难度控制在黑题以下,于是全部选择了一些紫题。下面可能会用到一些知识,别担心都是学过的和一些概念,如果不会那么事后可以去看看:裴蜀定理tarjan2-satCF1680F如果原图是二分图,那么直接进行染色即可,下面考虑不是二分图的情况。因为一......