摘要: 给定一棵树,求树的重心的编号以及重心删除后得到的最大子树的节点个数size,如果size相同就选取编号最小的. 首先要知道什么是树的重心,树的重心定义为:找到一个点,其所有的子树中最大的子树节点数最少,那么这个点就是这棵树的重心,删去重 心后,生成的多棵树尽可能平衡 #include <iostre 阅读全文
posted @ 2020-02-18 22:39 _Ackerman 阅读(466) 评论(0) 推荐(1) 编辑
摘要: 问树中每个子树的大小: void get_size(int x) { siz[x] = 1; for (int i = 0;i < vec[x].size();i++) { get_size(vec[x][i]); siz[x] += siz[vec[x][i]]; } } 问树中每个节点的深度: 阅读全文
posted @ 2020-02-18 22:37 _Ackerman 阅读(310) 评论(0) 推荐(0) 编辑
摘要: 题目大意: 长度为 n ,含有 m 个 1 的 01串含有 1 的子串个数 最多是多少 思路: 既然是要求含有 1 的子串个数要最多,也就是要让含有 0 的子串个数要最少 长度为 n 的字符串它的子串总个数是 n * (n + 1) / 2 我们考虑全为0的子串个数 我们有m个1,相当于有m+1的空 阅读全文
posted @ 2020-02-18 12:57 _Ackerman 阅读(320) 评论(0) 推荐(2) 编辑
摘要: 题目意思: 给你一串数组,其中-1代表未知,求相邻两个数之差的绝对值最小 想法: 我们先假设 -1 的位置代表 k ,那么我们要让它和它前后两个数的最大差值最小 也就是 | k-a | | k-b | | k-c | .... 那么会发现其实也就是和 a,b,c .. 中最大的、最小的差值要最小 那 阅读全文
posted @ 2020-02-18 12:49 _Ackerman 阅读(414) 评论(0) 推荐(0) 编辑