![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
树形结构
jay_zjy1022
人群淹没,你我不及诉说。一声雁过,往事如昨。只望离别不多,再赏盛世烟火。
展开
-
有根树的同构
有根数的同构 题目大意 主要是判断给你的k棵有根树,问哪几个树是同构的 发一下原题吧: 图的同构是指两个图“相同”,这有着广泛的应用。比如当我们要对一批图施行某种操作的时候,如果我们能发现其中一些图是同构的,我们就可以在这些同构的图中只保留一个,从而降低工作量。比如,上图中的T1和T3就是同构的。 下面我们给出图的同构的定义。给出两个图G1=(V1,E1),G2=(V2,E2)。如果存在一个V1到...原创 2020-01-14 21:38:30 · 547 阅读 · 0 评论 -
2020.7.16 T3 【NOIP2015模拟10.29B组】树上路径(jz暑假训练day2)
Description 现在有一棵n个点的无向树,每个点的编号在1-n之间,求出每个点所在的最长路。 Input 输入文件名为tree.in。 第一行为一个整数n。 之后n-1行,每行三个整数u,v,w,分别表示一条边连的两个点和边权。 Output 输出文件tree.out,共n行,分别表示经过每个点的最长路。 Sample Input 4 1 2 3 1 3 4 1 4 2 Sample Output 7 7 7 6 Data Constraint 对于50%,1<=n<=1000 对于10原创 2020-07-16 19:55:37 · 134 阅读 · 0 评论 -
2020.7.16 T4【NOIP2015模拟10.29B组】抓知了(jz暑假训练day2)
Description 深海龙王和水葫芦娃放了暑假闲的无聊,一天他们路过一棵树,听到树上的知了叫的好欢啊∼ 深海龙王准备抓几只知了送给水葫芦娃。他发现面前的这棵树是一颗以1 号节点为根节点的一颗有根树,同时他又发现这颗树上的每一个节点i 上都恰好停有一只蝉,正在愉快的以ai 的响声鸣叫∼ 深海龙王会从1 号节点起沿着树边一直爬,直到爬到一个叶子节点(请不要在意他怎么下来),在这途中他可以选择一些他经过的蝉并将它们抓起来。但是水葫芦娃希望深海龙王抓的知了能发出越来越响的鸣叫声,起码得要单调不减! Input原创 2020-07-16 20:42:10 · 164 阅读 · 2 评论 -
2020.7.17 T1亲戚(jz暑假训练day3)
Description Input Output Sample Input 4 0 1 1 0 Sample Output 8 Data Constraint 赛时 25分暴力+5分全排列 正解 树形dp 方程是: f[x]=((f[x] * f[v])%mod*c(min(size[x]-1,size[v]),size[x]-1+size[v]))%mod; x为当前遍历的点,v为儿子,此时的size[x]并没有加上v的节点数。那么这个方程的意思也就是v的子树与前面x遍历过的子树求方案,f[x]*原创 2020-07-17 19:41:53 · 130 阅读 · 2 评论 -
2020.7.17 T3水管(jz暑假训练day3)
Description Input Output Sample Input 1 5 7 1 2 2 1 4 1 2 4 2 4 3 2 2 3 1 4 5 1 1 5 2 Sample Output 5 No Data Constraint 赛时 最小生成树打一遍,之后贪心的认为选一条没有选的边中最小的边,然后再打一遍最小生成树,竟然还有62分!之后把long long开了有82分!!! 正解 很多方法,我的方法大概是,先最小生成树,之后对于每个没选的边u,v,w,我们查找u到v的路径上最大的边权,那么原创 2020-07-20 07:34:56 · 129 阅读 · 0 评论 -
2020.7.22 T1三色树(jz暑假训练day7)
Description 给出一个N个节点的无根树,每条边有非负边权,每个节点有三种颜色:黑,白,灰。 一个合法的无根树满足:树中不含有黑色结点或者含有至多一个白色节点。 现在希望你通过割掉几条树边,使得形成的若干树合法,并最小化割去树边权值的和。 Input 第一行一个正整数N,表示树的节点个数。 第二行N个整数Ai,表示i号节点的颜色,0 表示黑色,1表示白色,2表示灰色。 接下来N-1行每行三个整数Xi Yi Zi,表示一条连接Xi和Yi权为Zi的边。 Output 输出一个整数表示其最小代价。 Sam原创 2020-07-22 19:24:07 · 481 阅读 · 1 评论 -
2020.7.27T4花花的聚会(jz暑假训练day11)
Description Input Output Sample Input 7 7 3 1 2 1 7 6 6 3 5 3 4 3 7 2 3 7 1 1 2 3 5 3 6 2 4 2 4 5 3 10 6 1 20 3 5 6 7 Sample Output 10 22 5 Data Constraint Hint 赛时 考虑一个部分分的dp,然后空间竟然爆掉了!!! 结果40分 正解(呸 ) 一坨大佬暴力解决???加个小小剪枝?(if(当前答案>ans)return) 然后水题开始 #原创 2020-07-27 19:21:30 · 355 阅读 · 0 评论 -
2020.7.24 T1序章-弗兰德的秘密 (jz暑假训练day9)
Description 背景介绍 弗兰德,我不知道这个地方对我意味着什么。这里是一切开始的地方。3年前,还是个什么都没见过的少年,来到弗兰德的树下,走进了封闭的密室,扭动的封尘已久机关,在石板上知道了这个世界最角落的最阴暗的东西。那种事情,从未忘怀,从未动摇,我还记得,那一天,我,里修,第一次拔起了剑…… 弗兰德的密室里,机关上方画着两棵树的字样,机关下方是一个有数字的刻度…… 弗兰德最高的两棵树,只要知道两棵树的共同的相似度就行了…… 给定两棵有根树,可以任意删除两棵树上的节点(删除一棵节点必须保证该节点原创 2020-07-24 15:56:07 · 153 阅读 · 0 评论 -
2020.7.23 T3小X的佛光 (jz暑假训练day8)
题目大意 给个树,每次询问给出3个点a,b,c,询问a到b的路径与b到c的路径之间重合的点的个数 正解 lca不多说啥了,统计答案就是分类讨论咯(这里本人似乎讨论的重复些,读者也可以有自己的方法,所以本人自己的方法也便不解释了),另外这题卡栈(就是说dfs(递归)是系统存储的,这道题递归的太深导致系统的存储空间爆掉了),所以要打人工栈(也就是bfs) #include<cstdio> #include<iostream> #include<cmath> #define N原创 2020-07-24 15:50:38 · 134 阅读 · 0 评论