breeding magic 878d cf

CF838C Future Failure

考虑先手必胜的充要条件。 实际上,只要 $n$ 为奇数或者本质不同排列为偶数时先手必胜。 $n$ 为奇数时,先手必胜,答案就是 $k^n$。 $n$ 为偶数时,令 $a_i$ 为第 $i$ 个字符出现次数,$\sum\limits_{i=1}^ka_i=n$。反面考虑,我们相当于求 $\dbinom ......
Failure Future 838C 838 CF

CF850E Random Elections

难点在于读题。 由于每个人有 $6$ 种选法,答案其实就是某个人赢两次的方案数。 由于三个人本质没有差别,并且一种方案至多只有 $1$ 个人赢两次。所以不妨设 A 赢了两次,答案就是方案数乘 $3$。 考察 A 对于 B 和 C 的比赛,每个人的投票结果,第 $i$ 个人的投票为 $P_i$ 和 $ ......
Elections Random 850E 850 CF

CF232E Quick Tortoise

下面认为 $m=n$。 有一个显然的暴力:对每个点 $(x,y)$,预处理出另外所有点 $(p,q)$ 是否能到达 $(x,y)$,记为 $f_{p,q,x,y}$。查询 $O(1)$,但是预处理 $O(n^4)$。用 `bitset` 优化即可做到 $O(q+\frac{n^4}{\omega}) ......
Tortoise Quick 232E 232 CF

CF364E Empty Rectangles

`divide and conquer`,简单分治题。 显然可以做二维前缀和,考虑令矩阵 $(l_x-1,r_x,l_y-1,r_y)\to (l_x,r_x,l_y,r_y)$,方便统计答案,其实就是左端点减一。 考虑现在按照 $x$ 坐标分治,计算所有跨过 $x=\text{mid}$ 的矩形的 ......
Rectangles Empty 364E 364 CF

CF1229F Mateusz and Escape Room

# CF1229F Mateusz and Escape Room 很好的题目。 对于此类在环上的问题,一个经典的思路是断环成链。我们先形式化的描述题意,即给 $i$ 向 $i + 1$ 定一个流量 $x_i$(可能为负)。限制则为 $$ \forall i, a_i + x_{i - 1} - x ......
Mateusz Escape 1229F 1229 Room

格雷码 && CF1848F. Vika and Wiki 题解

## 格雷码 && CF1848F. Vika and Wiki 题解 本来有个GitHub上的Hexo博客的,但是我用起来不太熟练……先在博客园里写了后到时候转移过去吧。 ### 前置知识:格雷码(了解的读者可以跳过) 格雷码是所有k-bit(含k个二进制位)的数的一个排列,使得两个循环相邻(即两 ......
格雷码 题解 amp 1848 Vika

CF1132G Greedy Subsequences

简单题。 $i$ 向 $i$ 后**第一个** $j$,$a_j$ 比 $a_i$ 大的点连边,不难发现最后形成了一棵森林,并且一个点的父亲 $\text{fa}_i>i$。 题目变成了取 $[l,r]$ 中的点为起点,向祖先方向走去并且终点编号 $\le r$ 的最长链长度。 考虑离线,维护从每个 ......
Subsequences Greedy 1132G 1132 CF

CF633G Yash And Trees

简单题。 先把树拍扁成序列,在 dfn 序上区间修改区间查询。 由于时限 4s,我们可以整点怪的,比如 `bitset`。 把区间内的数有/没有表示成 $01$ 序列,考虑到区间加取模相当于区间内的数全部**循环右移**,用 `bitset` 可以做到 $O(\frac m \omega)$。 然后 ......
Trees 633G Yash 633 And

CF995F Cowmpany Cowmpensation

拉插优化 dp 在卷怪们眼里已经变成套路了吗,害怕。 考虑一个 dp 的推。设 $f_{u,i}$ 表示 $u$ 子树中填 $[1,i]$ 符合题目条件的方案数,此时不强制 $u$ 选 $i$,所以有: $$f_{u,i}=f_{u,i-1}+\prod\limits_{v\in \text{son ......
Cowmpensation Cowmpany 995F 995 CF

CF1530H Turing's Award

参考官方题解。 你发现这个覆盖不太好考虑,考虑时间倒流,变成如下形式: > 一开始,小 A 的位置上有一个数 $a_n$,然后对于接下来 $n-1$ 步,每次小 A 可以向左走/向右走/不动,然后如果此时小 A 所站的位置上**没有数**,就写上 $a_i$,求最后形成序列的最长上升子序列长度。 考 ......
Turing 1530H Award 1530 CF

CF1175G Yet Another Partiton Problem

应该是一个很通用的解法。 一个显然的分段 dp: > $f_{j,i}$ 表示前 $i$ 个数分 $j$ 段的方案数,$f_{j,i}\gets \min\limits_{k=0}^{i -1}f_{j-1,k}+w(k+1,i)$。 可以滚动数组,$f_{i}\gets \min\limits_{ ......
Partiton Another Problem 1175G 1175

CF1821F Timber

考虑如何判断一个方案是合法的,很容易想到贪心,从左到右考虑第 $i$ 棵树: - 如果这棵树能向左倒即 $[x_i-k,x_i]$ 没有被占据,就向左倒。 - 否则向右倒。 显然向左倒对之前已经倒下的树没有影响,而对后面的树来讲,这棵树向左倒能留下尽量多的空间,所以优先向左倒一定不劣。 所以考虑一个 ......
Timber 1821F 1821 CF

CF1285F Classical?

根据唯一分解定理,令 $x=p_1^{q_1}p_2^{q_2}\cdots p_m^{q_m},y=p_1^{k_1}p_2^{k_2}\cdots p_m^{k_m}$,则 $\text{lcm}(x,y)=p_1^{\max(q_1,k_1)}p_2^{\max(q_2,k_2)}\cdots ......
Classical 1285F 1285 CF

CF1004F Sonya and Bitwise OR

考虑只有一次询问的时候怎么做。 显然的 cdq 分治,每次分治区间 $[l,r]$,统计跨过 $p=\lfloor\frac{l+r}{2}\rfloor$ 的区间的个数。可以枚举区间左端点,由于右端点右移时区间或单调非降,可以双指针维护。 充分发掘题目条件,由于是区间或,还有一个很套路的性质:一个 ......
Bitwise 1004F Sonya 1004 and

CF1264D Beautiful Bracket Sequence

这里是加强版,$n\le 10^6$。 考虑到最后删剩下括号序列形如 `(((...(()))...))`,想到枚举分界点。 设 $p$ 为当前枚举的分界点,$l$ 为 $[1,p]$ 内 `(` 的个数,$r$ 为 $[p+1,n]$ 内 `)` 的个数,$x$ 为 $[1,p]$ 内 `?` 的 ......
Beautiful Sequence Bracket 1264D 1264

CF98E Help Shrek and Donkey

第一次做这种非合作博弈均衡的题。 显然,当双方均有牌的情况下,先手是不可能直接指定桌牌的:正确的概率为 $\frac{1}{m+1}$,错误的概率为 $\frac{m}{m+1}$,显然 $\frac{m}{m+1}\ge\frac{1}{m+1}$。 于是先手指定桌牌的情况只能是 $n=0$ 或 ......
Donkey Shrek Help 98E and

CF1605F PalindORme

不知道是怎么想到的。ntf 实在是不平凡的。/bx/bx/bx 你考虑如何判断一个序列是 $\text{good}$ 的。设重排后序列 $t_i$ 前缀 $[1,i]$ 和后缀 $[n-i+1,n]$ 按位或等于 $w_1$,$[1,i+1]$ 和 $[n-i,n]$ 按位或等于 $w_2$。不难发 ......
PalindORme 1605F 1605 CF

CF449D Jzzhu and Numbers

有一个很蠢但是很好写的做法。 就是你先令 $t_i$ 为与起来恰好为 $i$ 的方案数,然后 $g_i$ 为与起来子集中有 $i$ 的方案数。 然后 $g_S=\sum\limits_{T\subseteq S}t_T$,反演一下变成 $t_{S}=\sum\limits_{T\subseteq S ......
Numbers Jzzhu 449D 449 and

CF940E Cashback

首先我们发现在删的数的数量相等的情况下,尽量细分是不劣的。 所以我们可以假设每一段长度至多为 $c$,同时长度严格 $c]$。 复杂度 $O(n)$。 [评测记录。](https://codeforces.com/contest/940/submission/189160602) ......
Cashback 940E 940 CF

CF878D Magic Breeding

CF 评分有毒吧,暴力题上 *2900。 先口胡一下,代码等会再写。 首先考虑 $a_{x,y}\in \{0,1\}$,那 $n$ 个属性对应的人的状态只有 $2^k$ 个,可以把状态相同的属性都合并成一个属性。 取 $\max$ 和 $\min$ 操作就变成了两个人与/或起来。我们可以对每个属性 ......
Breeding Magic 878D 878 CF

CF1062E Company

对于一个询问 $[l,r]$,假设 $\text{lca}(l,l+1,...,r)=u$。 如果删去了点 $x$,使得 $\text{lca}$ 从 $u$ 下移到了点 $v$,说明 $x$ 一定在 $u$ 的子树内并且不在 $v$ 的子树内。 这样顺序好像不太对,这样说吧: 如果你想让答案从 $ ......
Company 1062E 1062 CF

CF1770F Koxia and Sequence

#### 题意 给定非负整数 $n,x,y$,对于所有满足 $\sum\limits_{i=1}^{n}a_i=x$ 并且 $\text{OR}_{i=1}^{n}a_i=y$ 的 $\{a_n\}$,求 $\bigoplus\limits_{i=1}^{n}a_i$ 的异或和。 $n\le 2^{ ......
Sequence 1770F Koxia 1770 and

CF1083F The Fair Nut and Amusing Xor

#### 简要题意: 给你两个序列 $a,b$,一次操作可以将 $a$ 的某一个长度为 $k$ 的子区间全部异或上任意值,$f(a,b)$ 为使得 $a$ 和 $b$ 相同的最少的操作数量。 支持单点修改 $a,b$,并在开头和每次修改后输出 $f(a,b)$ 的值。 $n,k,q\le 2\tim ......
Amusing 1083F 1083 Fair The

CF1761D Carry Bit

#### Description 设 $f(x,y)$ 是 $x+y$ 的二进制进位数(即 $f(x,y)=g(x)+g(y)-g(x+y)$ ,其中 $g(x)$ 是 $x$ 的二进制表示中 $1$ 的个数)。 给定两个整数 $n$ 和 $k$ ,求出满足$0 \leq a,b #define i ......
1761D Carry 1761 Bit CF

CF1361E James and the Chase

#### Description 给定一个有 $n$ 个点 $m$ 条边的**有向强连通图**。称一个点是**好的**当且仅当它到其他点都有且只有一条**简单路径**。如果好的点至少有 $20\%$ 则输出所有好的点,否则输出 `-1`。 $\sum n\leq 10^5,\sum m\leq 2\ ......
1361E James Chase 1361 and

CF576E Painting Edges

根据不知从何而来的传统,考前需要写数据结构。 ### Part 1 如何判断二分图 你要是用染色法暴力过了这道题那就只能说是真神仙…… 但是我们可以使用染色的思想。 考虑到颜色数不多,可以开 $k$ 个**拓展域并查集**,对于原图每个点我们拆成两个:$i$ 和 $i+n$,如果 $i+n$ 和 $ ......
Painting Edges 576E 576 CF

CF1603D Artistic Partition

首先如果 $2^k>n$,答案为 $n$。 否则 $k\le \log_2n$,然后就可以令 $dp_{i,j}$ 表示前 $i$ 个数分 $j$ 段的最小答案。 $dp_{i,j}=\min\limits_{k=1}^{i}\{dp_{k-1,j-1}+c(k,i)\}$。 考虑到: $$\beg ......
Partition Artistic 1603D 1603 CF

CF1464F My Beautiful Madness

一发最优解祭( ### Description 给定一棵树,节点 $1$ 到 $n$ 标号,$q$ 个操作,你需要维护一个路径**可重**集合 $P$,操作一共三种: 1. 向 $P$ 集合加入 $u\to v$。 2. 在 $P$ 集合中删掉 $u\to v$(保证操作之前有加入,并且**只删一个 ......
Beautiful Madness 1464F 1464 CF

CF1152F2 Neko Rules the Catniverse (Large Version) 题解

发现挨位考虑填哪个不太现实,考虑值域。 令 $dp_{i,j,st}$ 表示考虑到 $i$,此时序列长度为 $j$,$i-m$ 到 $i-1$ 填空状态为 $st$ 的方案数,考虑选/不选数即可: $dp_{i,j,st}\times (\text{popcount}(st)+1)\to dp_{i ......
题解 Catniverse Version 1152F Large

CF1407E

[In Luogu](https://www.luogu.com.cn/problem/CF1407E) 从 $1$ 出发染色不好处理,考虑从 $n$ 出发进行染色,尽可能让每一条路不可经过,这样也是最大化其他点到 $n$ 的最短路。 如果当前为 $u$,点 $v$ 和 $u$ 有边,如果只有一种颜 ......
1407E 1407 CF