【hiho1715】树的联通问题】的更多相关文章

题目大意:给定一棵 1~n 标号的树.Tree[L,R]表示最少需要选择的边的数量使得 L~R 号点两两连通.求: \[ \sum_{L=1}^{n} \sum_{R=L}^{n} \operatorname{Tree}[L, R] \] 题解: 要求的是经过边的数量,可以考虑每条边对答案的贡献. 对于边 (u,v) ,定义一个特征序列 a[1...n],若 i 在以 u 为根的子树中,则 a[i]=1,否则 a[i]=0.发现若要求该边的贡献为 1,则选择的范围 a[l]-a[r] 中必须要既…
Discription 对于 100% 的数据, N<=50. solution: 发现N比较小,所以我们可以花O(N^2)的代价枚举两颗树的联通块的LCA分别是哪个点,然后现在问题就变成了:选一个点必须要选它在两个树上的祖先,问如何选点可以使收益最大. 这是一个裸的 最大权闭合子图 问题, 节点连S表示选,连T表示不选,如果选x必须选y那么就连<x,y,inf>,最后的答案就是 所有正的a的和 - 这个图的最小割. #include<bits/stdc++.h> #defi…
LINK:林克卡特树 作为树形dp 这道题已经属于不容易的级别了. 套上了Wqs二分 (反而更简单了 大雾 容易想到还是对树进行联通情况的dp 然后最后结果总和为各个联通块内的直径. \(f_{i,j}\)表示以i为根的子树内有j条边被删掉 可以发现这个状态难以转移. 需要换个状态 一个比较经典的做法是套用树的直径的那套来做 每个点向上传递单条链或者什么都不传来转移. 传递单条链可以在父亲的那个地方合成一条 然后钦定此条为以x为根的联通内的最大值 那么就可以从x所在父亲的那条边切断了. 或者 传…
Description 为了找寻沉睡的亚特兰提斯大陆,wm来到了大西洋上进行探险,找了半个月仍一无所获.然而在一次突袭而来的暴风雨后,wm的船莫名地驶入了一片未知的区域,发现了一个地图上未标记的岛屿,这让他感到相当惊讶,强烈的好奇心驱使他上岸看看究竟. 船在岛屿靠岸后岛上的国王举行庆典热情地款待了他,整个岛一片喜庆.国王自称是亚特兰提斯人,而这个岛屿曾经是亚特兰提斯大陆的最高地.现在岛屿上还有N个城市,由于岛上的资源相当有限且岛上没人知道怎么合理利用资源故一直以来在城市之间都没有铺设道路,现在国…
4.14 网络流专项测试 先看T1,不会,看T2,仙人掌???wtf??弃疗.看T3,貌似最可做了,然后开始刚,刚了30min无果,打了50分暴力,然后接着去看T1,把序列差分了一下,推了会式子,发现是傻逼费用流,然后码码码,码完秒过大样例,觉得比较稳,又肉眼查了会错,就放了.然后接着推T3,发现我会做一个限制条件的,貌似和T1差不多,然后就写了,感觉能多骗点分,之后看了看T2,发现30裸树剖,30裸最大流,然后码码码.最后查了会错,发现T1没开long long,赶紧改了.100+44+63=…
\(kruskal\) 重构树学习笔记 前言 \(8102IONCC\) 中考到了,本蒟蒻不会,所以学一下. 前置知识 \(kruskal​\) 求最小(大)生成树,树上求 \(lca​\). 算法详解 \(kruskal\) 重构树可以解决瓶颈路问题(如:\(noip2013\) \(d1t3\) 货车运输,可以当做模板题来做,本文中也将此题作为例题): 我们来思考一下 \(kruskal\) 求最小(大)生成树的过程(后文中以最大生成树为例),大致过程可以概述为:将图中所有边从大到小排序,枚…
题意:给一颗仙人掌,要求移动一条边,不能放在原处,移动之后还是一颗仙人掌的方案数(仙人掌:无向图,每条边只在一个环中),等价于先删除一条边,然后加一条边 题解:对于一颗仙人掌,分成两种边,1:环边:环上的边2,树边:非环上的边 考虑1.删除树边,那么只需联通两个联通快,那么方案数就是两个联通块乘积-1(除去删除的边) 2.删除环边,那么我们假设删除所有环,那么图变成了深林,方案数就是深林中每棵树任意两点连接,方案数就是全部的和,先维护一个每个环上的点有多少树边,对于每个树边联通块(大小x)共贡献…
题目描述 给出一棵边带权的节点数量为n的树,初始树上所有节点都是白色.有两种操作: C x,改变节点x的颜色,即白变黑,黑变白 A,询问树中最远的两个白色节点的距离,这两个白色节点可以重合(此时距离为0). N (N <= 100000) Q <= 200000 时限1s 题解 如果没有修改的话,直接点分治,记录子树最深的白点即可. 但是有修改. 发现,点分治的递归层数是O(logn)的 而且这个递归的联通块的根形成一个树形结构.不妨叫点分树. 我们的答案是在所有递归出来的块里ans取max…
题目大意:给定一棵 N 个节点的无根树,点有点权,点权有正有负,求这棵树的联通块的最大权值之和是多少. 题解:设 \(dp[i]\) 表示以 i 为根节点的最大子树和,那么只要子树的 dp 值大于0,就应该算到 i 的 dp 贡献中,每次计算完后,答案取最大即可. 这里要说明的是,此题并不需要二次扫描与换根操作,因为这里统计答案是在每个点的 dp 值计算完之后,而不是整个 dfs 结束后只统计根节点的 dp 值,这就意味着在这里包含了最优解所有可能的情况. 代码如下 #include <bits…
Definition & Solution AC自动机是一种多模式串的字符串匹配数据结构,核心在于利用 fail 指针在失配时将节点跳转到当前节点代表字符串的最长后缀子串. 首先对 模式串 建出一棵 tire 树,考虑树上以根节点为一个端点的每条链显然都对应着某一模式串的一个前缀子串,以下以树上的每个节点来代指从根节点到该节点对应的字符串. 定义一个字符串 \(S\) 在 trie 树上"出现过"当且仅当存在一条以根节点为一个端点的链,该链的对应字符串为 \(S\). 考虑对每…