
仙人掌
仙人掌
sz_165394732
这个作者很懒,什么都没留下…
展开
-
洛谷 4517 [JSOI2018]防御网络
题目链接 题解 还是一样的套路,先考虑在树上,设f[u]f[u]f[u]为uuu子树内所有关键点都联通到uuu的距离和,转移显然。考虑在环上,需要考虑的就是环上有大于一个的子树有关键点。考虑如果已知一种方案有哪些点子树有关键点,可根据它在环上相邻的最大距离来计算贡献,故记g[i][j][k]g[i][j][k]g[i][j][k]为起点iii,终点jjj,中间最大空位为k的方案数、距离和,前缀和优...原创 2020-02-26 23:35:56 · 169 阅读 · 0 评论 -
仙人掌问题 学习笔记
仙人掌DP问题 T1 题目链接 题解 在树上做是一个经典的DP,记f[i][0/1]f[i][0/1]f[i][0/1]为u子树内u是否选的最大独立集,转移显然。在仙人掌上,还是先像树那样dfs,考虑每一条返祖边的影响,即对于每一个环在做一个dp,多记一维代表末尾是否选即可。注意dp是顺序,应保证每个点除了有伸向祖先的返祖边的子树外都考虑过,最后考虑有伸向祖先的返祖边的子树即可。 代码: #inc...原创 2020-02-26 23:35:18 · 318 阅读 · 0 评论 -
BZOJ 2125: 最短路
题目链接 题解 考虑转化成树上问题,那么显然需要构建圆方树。原点和方点的距离如何定义呢?考虑在仙人掌上两个点找最短距离的过程,不考虑返祖边的话就是一直跳到lca,返祖变的作用就是在那个环上的时候有机会更快跳到环顶。于是对于每条返祖边对应的环,环上所有点到方点的距离先定位它到环顶端的最短距离。这样,如果两个点的lca是原点,那么直接计算;否则说明它们的lca在一个环上,多记录一下每个点在环上的编号即...原创 2020-02-26 16:27:38 · 147 阅读 · 0 评论 -
BZOJ 1023 [SHOI2008]cactus仙人掌图
题目链接 题解 和上一题类似的套路,不过在环上的时候要考虑两点的最短距离,分情况讨论,拿单调队列维护即可。原创 2020-02-24 23:36:02 · 135 阅读 · 0 评论 -
BZOJ 4316 小C的独立集
题目链接 题解 在树上做是一个经典的DP,记f[i][0/1]f[i][0/1]f[i][0/1]为u子树内u是否选的最大独立集,转移显然。在仙人掌上,还是先像树那样dfs,考虑每一条返祖边的影响,即对于每一个环在做一个dp,多记一维代表末尾是否选即可。注意dp是顺序,应保证每个点除了有伸向祖先的返祖边的子树外都考虑过,最后考虑有伸向祖先的返祖边的子树即可。 代码: #include<bit...原创 2020-02-24 23:34:38 · 134 阅读 · 0 评论