摘要: 题目大意:单元最短路径(卡$SPFA$) 题解:$dijkstra$($\underline{\hspace{0.5em}}\underline{\hspace{0.5em}}gnu\underline{\hspace{0.5em}}pb\underline{\hspace{0.5em}}ds::p 阅读全文
posted @ 2018-08-11 19:17 Memory_of_winter 阅读(310) 评论(0) 推荐(0) 编辑
摘要: 题目大意:有$n$个点和$m$条边(最多有$10$条边边权相同),求最小生成树个数 题解:对于所有最小生成树,每种边权的边数是一样的。于是就可以求出每种边权在最小生成树中的个数,枚举这种边的边集,求出对于这个边集可以的解(即没有一条边在同一联通块中),再把每种边的方案数乘起来即可。 卡点:无 C++ 阅读全文
posted @ 2018-08-11 18:11 Memory_of_winter 阅读(193) 评论(0) 推荐(0) 编辑
摘要: 题目大意:有$2$个煤矿,$n$天。每天给一个煤矿送餐(共有有$3$种餐),价值为它与前面两次送餐(如果有的话)不同的种类数。最大化价值。 题解:看到只有三种餐,考虑状压$DP$。$f_{i,j,k,l,m}$表示现在是第$i$天,第一个煤矿上一次为$j$,再上一次为$k$(没有为$0$),$l,m 阅读全文
posted @ 2018-08-11 16:58 Memory_of_winter 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 题目大意:有一棵点数为 $N$ 的树,以点 1 为根。然后有 $M$ 个操作。 1. 把 $x$ 的点权增加 $a$ 。 2. 把 $x$ 为根的子树中所有点的点权都增加 $a$ 。 3. 询问 $x$ 到根的路径中所有点的点权和。 题解:树链剖分模板题 卡点:我真的好久没打树剖了。。。 1.线段树 阅读全文
posted @ 2018-08-11 15:06 Memory_of_winter 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 题目大意:在数轴上有$n$个闭区间$[l_1,r_1],[l_2,r_2],...,[l_n,r_n]$。现在要从中选出 $m$ 个区间,使得这 $m$ 个区间共同包含至少一个位置。输出被选中的最长区间长度减去被选中的最短区间长度,若多解,输出最小的一个 题解:把区间按长度排序,然后把左右端点离散化 阅读全文
posted @ 2018-08-11 10:46 Memory_of_winter 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 题目大意:给你一个无向图,其中一个点双联通分量算作一个点,询问两个点之间(包括这两个点)有多少点(注意重边不需要缩点) 题解:$tarjan$缩点,特判一下如果是他的父亲,就不干(去除重边的影响),然后$O(m)$重建图,跑一边$LCA$求距离就好了 卡点:1.没有关注重边 2.查询写成原图中的编号 阅读全文
posted @ 2018-08-11 10:03 Memory_of_winter 阅读(254) 评论(0) 推荐(0) 编辑