摘要: 题意: 给定一张$n$个点,$m$条有向边的图,标记其中$k$个点,求这$k$个点之间的两两最短路的最小值 范围&性质:$1\le k, n\le 105,1\le m\le 5\times 105$ 分析: 暴力 暴力将关键点分成$A,B$两个集合,超级源向$A$集合每一个点连一条边权为0的边,$ 阅读全文
posted @ 2020-10-20 22:31 youth518 阅读(65) 评论(0) 推荐(0) 编辑
摘要: 题意: 给定一张无向图,起点和终点,可以选择其中$k$条边将其边权改为0,求从起点到终点的最小代价 数据范围&性质:$1\le n\le 104,q\le m\le 5\times 104,1\le k\le 10$ 分析: 没什么好说的,就是分层图裸题,只是我一直不知道有这么一种做法 简单说就是建 阅读全文
posted @ 2020-10-20 22:16 youth518 阅读(94) 评论(0) 推荐(0) 编辑
摘要: 虚树就是将树上我们需要的关键信息,浓缩到一颗新的树上,这棵树上除了关键点还有任意一对关键点的$lca$的信息 建立: 这里介绍利用单调栈的做法,首先我们要明确一个目的,我们要用单调栈来维护一条虚树上的链。也就是一个栈里相邻的两个节点在虚树上也是相邻的,而且栈是从底部到栈首单调递增的(指的是栈中节点 阅读全文
posted @ 2020-10-20 22:07 youth518 阅读(85) 评论(0) 推荐(0) 编辑
摘要: 点分治可以解决树上大规模路径问题 过程 : 每次找出重心,处理出所有跨过重心的信息,例如将一条长$k$的路径拆成两条跨过重心的链,然后递归处理,只会递归$O(log_n)$层,总复杂度为$O(nlog_n)$ 小 \(trick\) : 将每层处理的节点放入队列里,然后弹出队列清空,直接$memse 阅读全文
posted @ 2020-10-20 21:53 youth518 阅读(92) 评论(0) 推荐(0) 编辑
摘要: 题意: 有点复杂,自行浏览吧 题目链接 分析: 我们发现DP转移时需要记录以下几个信息: 打饭队列的队首是谁,上一个打饭的是谁,队列前$b[i]$个人的状态 然后我们根据这些信息设立DP状态,记$f[i][j][k]$表示该第$i$个人打饭(等价于前$i-1$个人已经买完饭)此时队列前7个人的状态是 阅读全文
posted @ 2020-10-20 21:00 youth518 阅读(63) 评论(0) 推荐(0) 编辑