摘要: 博弈论的题往往可以通过直接计算Sprague-Grundy函数来解决。本文将介绍两道较为相似的例题,在他们的设定下,大多数情况输赢仅由双方的优势程度所决定,而先手的优势则被限定在很小的范围内——即势均力敌的情况。 例题1 CodeForces 1704F. Colouring Game Alice和 阅读全文
posted @ 2022-08-22 18:03 liouzhou_101 阅读(252) 评论(0) 推荐(0) 编辑
摘要: 给定有向无环图(Directed Acyclic Graph, DAG)$G = (V, E)$,以及源点集$S = \{ s_1, s_2, \dots, s_n \}$,汇点集$T = \{ t_1, t_2, \dots, t_n \}$。每一条边$(x, y)$都有一个权值$w(x, y)$ 阅读全文
posted @ 2021-09-03 18:15 liouzhou_101 阅读(550) 评论(1) 推荐(2) 编辑
摘要: 本文从另一个角度理解Dijkstra算法,可能会与通常Dijkstra算法的讲解有一些区别。 最短路问题:给定有向图$G = (V, E)$,每条边形如$(x, y, w)$,其中$w$表示节点$x$至节点$y$的距离为$w \geq 0$。求节点$s$至节点$t$的最短路径长度。 Dijkstra 阅读全文
posted @ 2020-09-10 16:22 liouzhou_101 阅读(664) 评论(0) 推荐(1) 编辑
摘要: 题目简述:给定一棵$n$($2 \leq n \leq 10^5$为偶数)个节点的树,以及$1 \leq k \leq n^2$。要求找到完全匹配$f: [n] \to [n]$,使得距离之和 $$ S(f) = \frac 1 2 \sum_{i \in [n]} \mathit{dis}(i, 阅读全文
posted @ 2020-09-03 00:43 liouzhou_101 阅读(472) 评论(2) 推荐(0) 编辑
摘要: 引子:(广义错排问题)有$n$个班级,第$i$个班有$a_i$人,每人都写一张贺卡送给另一个人,问是否存在一个分配方案,使得 每个人都获得恰好一张贺卡,并且与这张贺卡的作者来自不同班级。 当$a_i = 1$时,该问题退化成【错排】问题。 定理:令$m = \sum_{i} a_i$表示总人数,则存 阅读全文
posted @ 2020-07-26 01:38 liouzhou_101 阅读(837) 评论(4) 推荐(2) 编辑
摘要: 本文仅考虑域(Field)$\mathbb{F}$上的一元$N$次多项式 $$ f(x) = \sum_{n=0}^N a_n x^n, $$ 其中$x$是形式参数,$a_n \in \mathbb{F}$。我们把多项式$f(x)$简记作$f$。记 $$ \mathbb{F}[x] = \left\ 阅读全文
posted @ 2020-07-24 22:29 liouzhou_101 阅读(1014) 评论(0) 推荐(1) 编辑
摘要: 考虑随机事件序列$\{A_0, A_1, A_2, \dots\}$,随机变量$T$为其停时。我们希望求$\mathbb{E}[T]$,但一般情况下是比较困难的。 可以考虑构造势函数$\phi(A)$,满足 $ \mathbb{E}[\, \phi(A_{t+1})-\phi(A_t) \mid A 阅读全文
posted @ 2020-05-14 17:52 liouzhou_101 阅读(4284) 评论(7) 推荐(16) 编辑
摘要: 题目简述:给定一棵$N \leq 10^5$个节点的树,边上带权,维护以下两个操作: 1. 修改一条边的边权; 2. 询问当前树的直径长度。 解1:code 注意到树的直径有以下性质: 定理:令$\text{farthest}(x)$表示与节点$x$距离最远的节点的集合。则对任意节点$x$,都有任意 阅读全文
posted @ 2019-07-29 21:09 liouzhou_101 阅读(2613) 评论(0) 推荐(3) 编辑
摘要: 例题【洛谷P4719】 给定一棵树,节点$x$的权值为$w[x]$,维护以下两个操作: 1. 修改一个节点的权值; 2. 询问当前的最大独立集的权值。 解: 假设没有修改操作,则是一个典型的树形动态规划。设$f[x][0]$表示未选择节点$x$的情况下的最大权值,$f[x][1]$表示选择了节点$x 阅读全文
posted @ 2019-07-23 21:40 liouzhou_101 阅读(309) 评论(0) 推荐(0) 编辑
摘要: 题目简述:求满足如下条件的$N \leq 10^5$排列的个数(模$998244353$): 1. 从左往右会依次遇到$A$个比当前遇到的最大值更大的元素; 2. 从右往左会依次遇到$B$个比当前遇到的最大值更大的元素。 解:code 不管是从左往右,还是从右往左,我们都会遇到最大值$N$,并且此后 阅读全文
posted @ 2019-02-26 18:02 liouzhou_101 阅读(309) 评论(0) 推荐(0) 编辑