文章分类 - 题解
摘要:Solution 考虑 Graham Cran 算法,这样不需要将上下凸壳分开讨论。 枚举一个凸包上 \(x\) 最小的点 \(P\) ,设计 \(f_{i,j,0/1}\) 表示凸包上最后选择的两个点是 \(i,j\),面积是奇数/偶数的点集个数。 时间复杂度是 \(O(n^4)\) 的。 Cod
阅读全文
摘要:Solution 有显然一点,对于 \(h2>h1\) 它的贡献与 \(h2=h1\) 是相同的,因此对于 \(h2>h1\) 我们令 \(h2\gets h1\)。对于 \(w2\) 和 \(w1\) 同理。如此我们使得 \(h2\le h1,w2\le w1\)。 现在我们设 \[A_{i,j}
阅读全文
摘要:## 思路 对于第 $i$ 位,考虑对答案的贡献为 $g(i)=\sum_{j=1}^i f(j,i)$。 然后分情况讨论: - 第 $i$ 位是 $0$:由于 $0$ 或 $1$ $ \barwedge\ 0=0$ ,所以$g(i)=i-1$。减一是因为 $f(i,i)=0$。 - 第 $i$ 位
阅读全文
摘要:思路 我们从 $|c_u-c_v|\le 1$ 切入。设节点 $u$ 有 $k$ 个儿子。则根据小学就学过的鸽巢原理可以得到 $u$ 的每个儿子至少会分到 $\left\lfloor \dfrac{c_u}{k}\right\rfloor$条路径,最多分到 $\left\lceil\dfrac{c_
阅读全文
摘要:思路 我们需要交换 $A$ 中的任意两列,使 $A$ 变成 $B$。 考虑一个显然的性质:如果 $A$ 中的每一列都可以在 $B$ 中找到相同的一列(注意 $A$ 中不能有多列对应 $B$ 中的一列),那么 $A$ 一定可以变成 $B$,否则不能。那么根据此性质,我们直接模拟即可。 注意因为数据范围
阅读全文
摘要:可能更好的食用效果 前置 首先,我们要引出c++中加入的string,由头文件<string>所定义。 在这道题中,我们需要用到string自带的查找操作find: find(str,pos)可以用来查找字符串中一个字符/字符串在pos(含)之后第一次出现的位置(若不传参给pos则默认为0)。 如果
阅读全文
摘要:题目链接 可能更好的食用体验 思路 看起来或许无从下手,所以我们从小的 $n$ 开始枚举找规律。 $$ \begin{aligned} &n=1:\quad 0\ &n=2:\quad 1,0\ &n=3:\quad 1,0,2\ &n=4:\quad 0,3,2,1\ &n=5:\quad 4,3
阅读全文
摘要:可能更好的食用体验 既然题目中用到了位运算,那我们就用二进制来解决这道题。 1.判无解 观察 \(3\,4\,6\) 这个样例,我们将其分解二进制: \[\begin{aligned} (3)_{10} &= (11)_2 \\ (4)_{10} &= (100)_2\\ (6)_{10} &= (
阅读全文

浙公网安备 33010602011771号