摘要:
题目链接: "http://poj.org/problem?id=2186" 题目大意: 每头牛都想成为牛群中的红人。 给定N头牛的牛群和M个有序对(A, B),(A, B)表示牛A认为牛B是红人; 该关系具有传递性,所以如果牛A认为牛B是红人,牛B认为牛C是红人,那么牛A也认为牛C是红人。 不过, 阅读全文
摘要:
题目链接: "https://www.luogu.com.cn/problem/P1462" 题目大意: 有 $n$ 个点 $m$ 条边,每个点有一个点权,每个边有一个边权。求所有长度不超过 $b$ 的路径中的点权最大值的最小值。 解题思路: 二分答案 $D$(即点权最小值),每次求最短路查看有没有 阅读全文
摘要:
题目链接: "https://www.luogu.com.cn/problem/P1147" 题目大意: 给你一个数 $M$ ,求有多少对连续自然数对之和为 $M$,输出这列连续自然数对的首项和末项。 解题思路: 枚举连续自然数对的元素个数 $i$ 。 因为连续自然数对的元素个数越多,则首项越小,所 阅读全文
摘要:
题目链接: "https://www.luogu.org/problem/P3313" 这道题目就是树链剖分+线段树动态开点。 首先我们来理解一下这道题目的线段树部分。 如果这不是树链上面的操作,而是区间上面的操作,那么我们可以这么解决。 它最多有 $n = 10^5$ 种颜色,而我们需要每种颜色动 阅读全文
摘要:
题目链接: "https://www.luogu.org/problem/P2486" 首先这是一道树链剖分+线段树的题。 线段树部分 线段树区间操作,每一个线段对应的点包含三个信息: $l$:表示这个区间最左边的点的数值; $r$:表示这个区间最右边的点的数值; $cnt$:表示这个区间有多少个数 阅读全文
摘要:
题目链接: "https://www.luogu.org/problem/P2146" 本题涉及算法: 树链剖分; 线段树(区间更新及求和,涉及懒惰标记) 然后对于每次 ,需要将 到 的路径上面的点全都置为1。 那么在置为1之前统计一下节点数量 num1, 在置为1之后统计一下节点数量 num2, 阅读全文
摘要:
题目链接: "https://www.luogu.org/problem/P3178" 这道题目是一道树链剖分的模板题。 但是在解决这道问题的同事刷新了我的两个认识: 第一个认识是:树链剖分不光可以处理链,还可以处理 __子树__ ,因为: 节点 的子树中所有的点的编号都覆盖在 到 这个区间内! 第 阅读全文
摘要:
题目链接: "https://www.luogu.org/problem/P2590" 树链剖分模板题。 剖分过程要用到如下7个值: :u的父节点编号; :u的深度; :u为根的子树中节点总数; :u的重儿子; :u所在的重链的顶部节点; :u在线段树中的位置; :seg的倒置,即 。 然后套线段树 阅读全文
摘要:
题目链接: "https://www.luogu.com.cn/problem/P2602" 题目大意: 计算区间 $[L,R]$ 范围内 $0 \sim 9$ 各出现了多少次? 解题思路: 使用 __数位DP__ 进行求解。 定义一个结构体数组 $f[pos][all0]$ 表示满足如下条件时 $ 阅读全文