![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
BZOJ
文章平均质量分 57
calabash_boy
退役
展开
-
BZOJ 3437 : 斜率优化DP
Description小P在MC里有n个牧场,自西向东呈一字形排列(自西向东用1…n编号),于是他就烦恼了:为了控制这n个牧场,他需要在某些牧场上面建立控制站,每个牧场上只能建立一个控制站,每个控制站控制的牧场是它所在的牧场一直到它西边第一个控制站的所有牧场(它西边第一个控制站所在的牧场不被控制)(如果它西边不存在控制站,那么它控制西边所有的牧场),每个牧场被控制都需要一定的花费(毕竟在控原创 2017-10-25 11:49:41 · 301 阅读 · 0 评论 -
BZOJ 2286 [Sdoi2011]消耗战:虚树入门
题意:给出一棵带边权的树,根为1,每次询问给出一个点集,要求删掉一些树边,使得根与这些点不相连,并最小化边权之和。题解:将点集中的点拿出来建立虚树,然后对lca点和询问点讨论一下进行dp即可。(每个询问点到根的路径删除且只删除一条边)Code:#include <bits/stdc++.h>using namespace std;typedef long l...原创 2018-05-08 00:19:47 · 255 阅读 · 0 评论 -
BZOJ 2730矿场搭建:割点
题意:给出一个无向完全图,先在需要在图中选出最少的点,使得满足:删掉任意一个点之后,剩下的点都可以到达至少一个选择的点。求出最少选择的点数,以及选点的方案数。题解:显然,本题的描述本质上就是双连通性,即所有点到指定点都是点双连通的。那么考虑原图的割点,如果一个点双只包括一个割点,那么如果删掉了割点,就使得这个点双与原图断开连接,因此这个点双内一定要选出一个点(不能是割点);如果一个点双...原创 2018-04-20 23:59:54 · 234 阅读 · 0 评论 -
BZOJ 2125 最短路:圆方树+LCA(倍增)
题意:给出一个仙人掌,多次询问两点间最短距离。题解:树的情况下,只需要LCA即可,树剖或者倍增都行,树剖常数比倍增小一些,而且确实好写。 仙人掌情况下,只需要建立圆方树,显然方点到圆点父亲的边权应为0。讨论两点LCA的性质: LCA为圆点:这种情况说明此圆点确为两点LCA,答案就是dis(u)+dis(v)-2*dis(lca) LCA为方点:这种情况下说明,u和v两点向上寻找LCA...原创 2018-04-19 21:49:32 · 381 阅读 · 0 评论 -
业界毒瘤仙人掌一条龙服务
本slide是为了NJU集训队准备。。。。未完待续。。。 正经定义 : 无向图中的每条边至多位于一个简单环上,且任意两点可达。由此可知仙人掌的构造方式很“优美”,即生成一棵树,把树的某些节点,都各自变成一个简单环,就变成了仙人掌。因此仙人掌大体围绕两个重点:树边、简单环。入门篇简单环判定 : codeforces 962F题意:给出无向图,找到所有...原创 2018-04-17 15:59:03 · 1140 阅读 · 0 评论 -
BZOJ 4316 小C的独立集:圆方树+DP
题意:给定一棵仙人掌图,求其最大独立集。 独立集:点集内任意两点不存在边直接相连。 点相互独立:这些点组成的点集为独立集题解:树上情况:dp[i][0/1]表示考虑i为根的子数,i不选/选最多能选几个点。设j为i的儿子,有转移方程: dp[i][0]=∑max(dp[j][0],dp[j][1])dp[i][0]=∑max(dp[j][0],dp[j][1])\begin...原创 2018-04-18 21:20:34 · 527 阅读 · 0 评论 -
BZOJ 1023 [SHOI2008]cactus仙人掌图:圆方树+单调队列DP
题目传送门题意:给出一个仙人掌图,边权都为1,求其直径。 仙人掌图:无向图的每条边至多存在于一个简单环中。 仙人掌图直径:Max(dis(u,v)) 1<= u < v <=n。dis(u,v)是u、v之间的最短路径。题解:先考虑退化情况:仙人掌退化为一棵树。很显然可以通过一个树形DP来解决,讨论路径的形态:1、分跨在一个点的两个子树中2、...原创 2018-04-18 17:32:27 · 599 阅读 · 0 评论 -
BZOJ 4516 后缀自动机
题意:统计本质不同的子串数量。题解:模板题,后缀自动机。在每一个节点处,统计一下他能代表多少个 以他为终点的串。然后动态创建SAM,同时每加一次都输出一次就行了。唯一的不同是,这个题是int,而不是传统的字符串,那么把nxt数组换成map,复杂度多一个log(sizeof[nxt]),实际上非常小。Code:#includeusing namespace std;原创 2017-09-19 20:54:00 · 456 阅读 · 0 评论 -
BZOJ 2588 & SPOJ 10628:树上主席树
BZOJ强制在线,所以大多数RE==WASPOJ比较坑,大多数WA是因为数组没开够(n实际上大于1e5。。。题目数据的锅)。题意:给出一棵树,树上每个点有一个权值,现在有若干询问,每次询问(u,v,k)求出u-v路径上权值第k小的是什么。题解:在树上构造主席树,每个点记录该点到根路径上所有点。然后u-v的路径 需要用 u+v-lca(u,v)-father[lca(u,原创 2017-10-04 21:52:18 · 406 阅读 · 0 评论 -
BZOJ 3676字符串:PAM练习
题意:给出一个字符串,求 ∑S[i,j]为回文串S[i,j]出现次数∗(j−i+1)∑S[i,j]为回文串S[i,j]出现次数∗(j−i+1)\begin{equation*}\sum_{S[i,j]为回文串}S[i,j]出现次数*(j-i+1)\end{equation*}题解:构造出这个串的PAM,然后拓扑统计出每个状态的出现次数,然后扫一遍得到答案。注意long lon...原创 2018-05-15 19:37:46 · 340 阅读 · 0 评论