摘要: 题目链接 题意 给定一张有向图,每条边有权值,求用1个或多个不相交的环覆盖所有点并且环的权值和最小 题解 与有向图最小路径覆盖类似,考虑将有向图拆点成二分图,由于最后所有点都被环覆盖,所以最后的环覆盖一定对应拆点二分图上的一组完备匹配。于是问题就转化成了求二分图带权最优匹配问题,由于满足最优匹配一定 阅读全文
posted @ 2020-06-03 21:30 tryatry 阅读(167) 评论(0) 推荐(0) 编辑
摘要: 题目链接 题意 给定一个长度为$n$的字符串,对于$1 题解 对于求长度为$x$的回文子串个数的问题可以用回文自动机在线性时间复杂度内解决。但此题要求回文子串的前一半也是回文串,显然前一半是回文串等价于后一半也是回文串,那么我们可以在构建回文自动机的同时维护一个$half$数组,表示不超过当前回文串 阅读全文
posted @ 2020-06-03 15:17 tryatry 阅读(110) 评论(0) 推荐(0) 编辑
摘要: 链接 题解 首先对有向无环图进行拆点,即将每个点拆为入点$i$和出点$i+n$,得到一张二分图结论:有向无环图的最小路径覆盖等于$n$-拆点二分图最大匹配数简单证明:因为此题要求路径不相交,所以每一个点的入度和出度都不超过1,而每个节点都会被覆盖即每个节点的入度和出度至少有一个为1.所以最小路径覆盖 阅读全文
posted @ 2020-06-03 00:18 tryatry 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 题目链接 题解 由于$p$很小,所以可以考虑将当前有哪些钥匙用二进制压缩,作为一层状态,这样最多有$n*m*2^p$个状态 这样处理过后在图上$bfs$求解即可,注意一个房间可以能有多个钥匙 查看代码 #include <bits/stdc++.h> using namespace std; typ 阅读全文
posted @ 2020-06-03 00:02 tryatry 阅读(179) 评论(0) 推荐(0) 编辑