摘要: 传送门 吐槽:神tm网络流 dis[i][j][k] 表示到 (i, j) 还有 k 油的最优解 然后跑spfa,中间分一大堆情况讨论 1.当前队头还有油 1.目标点有加油站——直接过去 2.目标点每加油站——1.直接过去 2.在当前点召唤一个加油站再过去 2.没油——召唤加油站再走 ——代码 1 阅读全文
posted @ 2017-06-13 19:02 zht467 阅读(241) 评论(0) 推荐(0)
摘要: 传送门 吐槽:神tm网络流。。。 用持有的钥匙分层,状态压缩,用 2 进制表示持有的钥匙集合。 dis[i][j][k] 表示持有的钥匙集合为 k,到达点 (i, j) 的最短路径。 分层图的最短路听上去很玄乎,其实通过代码来看还是很好理解的。 ——代码 1 #include <queue> 2 # 阅读全文
posted @ 2017-06-13 15:21 zht467 阅读(195) 评论(0) 推荐(0)
摘要: 传送门 不同的时间每个飞船所在的地点不同,给我们启示按照时间构建分层图。 同一个地点 x <x, dayi - 1> -> <x, dayi> 连一条容量为 INF 的边,因为人们可以在一个地点等待 艘飞船的路径 如果 a 的下一站是 b,那么 <a, dayi - 1> -> <b, dayi> 阅读全文
posted @ 2017-06-13 14:18 zht467 阅读(157) 评论(0) 推荐(0)
摘要: 传送门 给定 n 个字符串,求出现或反转后出现在每个字符串中的最长子串。 算法分析: 这题不同的地方在于要判断是否在反转后的字符串中出现。其实这并没有加大题目的难度。 只需要先将每个字符串都反过来写一遍,中间用一个互不相同的且没有出现在字符串中的字符隔开, 再将 n 个字符串全部连起来,中间也是用一 阅读全文
posted @ 2017-06-13 08:45 zht467 阅读(154) 评论(0) 推荐(0)
摘要: 传送门 统计大于一半的串中都出现过的子串,有多个按照字典序输出 二分子串长度 k,用 k 将height 数组分组,接下来直接判断就 ok。 有个小细节,平常统计所有串中都出现的最长子串时,把所有子串拼接起来的符号可以是相同的,但是这个题不行。(为什么?好好想想) ——代码 1 #include < 阅读全文
posted @ 2017-06-13 07:38 zht467 阅读(162) 评论(0) 推荐(0)