树
Fushicho_XF
对知识无比的向往,渴望打开新世界的大门~
展开
-
牛客网-“景驰科技杯”2018年华南理工大学程序设计竞赛 B-一级棒 (树-路径压缩)
题目链接 题意:给出一个n,表示有n个节点0~n,0为根结点,随后给出n-1个数表示第i个节点连接的父节点 再给出一个q,随后q次操作:R u v 表示节点u~v之间的路径被访问的次数加1 Eg:5 0 1 1 3 W x 表示请你输出经过x及他的父节点之间这条路被访问的情况 5 ...原创 2018-05-05 17:38:49 · 387 阅读 · 0 评论 -
【牛客网】埃森哲杯第十六届上海大学程序设计联赛春季赛暨上海高校金马五校赛 B.合约数 (树+DFS+素数筛)
题目链接 (树+DFS+素数筛) 题意:给定一棵n个节点的树,并且根节点的编号为p,第i个节点有属性值vali, 定义F(i): 在以i为根的子树中,属性值是vali的合约数的节点个数。y 是 x 的合约数是指 y 是合数且 y 是 x 的约数。小埃想知道对1e9+7取模后的结果.(注意:合数是指非质数的数,约数即是因子) 题解:首先如果正常遍历每个结点的子树可以得到对应的f[i]值,而对a...原创 2018-05-05 18:16:11 · 219 阅读 · 0 评论 -
POJ - 1655 Balancing Act (树的重心)
题目链接 题意:给出一个t(t组样例),再给出一个n(表示1~n个结点),随后n-1行给出u,v(表示u和v联通)要求去掉1~n中一个结点使得拆分出来的所有子树的最大子树结点数最少. 题解:很明显树的重心裸题. 树的重心定义:找到一个点,其所有的子树中最大的子树节点数最少,那么这个点就是这棵树的重心,删去重心后,生成的多棵树尽可能平衡。 树的重心可以通过简单的两次搜索求出,第一遍搜索求出每个...原创 2018-08-18 21:13:01 · 155 阅读 · 0 评论 -
HDU - 2196 Computer (树的直径)
题目链接 题意:给出一个n,表示有n台电脑,之后给出n-1行,每行一个v,w(第i行的v,w表示i和v点之间有一条长度为w的线)要求输出第1到n台计算机能传送数据的最远距离? 题解:我们可以知道该题是在变向的求树的直径,先取任意一点dfs得到最远的一个点作为树的直径的一个端点X,再以该端点X进行dfs得到另一个端点Y(端点X、Y的距离也就是树的直径),最后再以端点Y进行dfs即可得到每个点到端...原创 2018-08-18 21:16:38 · 155 阅读 · 0 评论 -
POJ - 3107 Godfather (树的重心)
题目链接 题意:给出一个n(表示1~n个人吧),然后在给出n-1行,每行一个u,v(表示u与v关联)要求该树的所有重心,按从小到大的顺序. 题解:这道题的数据专门卡STL的,无限TLE,只能改用链式前向星做. 代码如下: #include<iostream> #include<cstring> #include<string> #include<...原创 2018-08-18 21:22:19 · 166 阅读 · 0 评论