maximum median 1201c cf

[LeetCode] 1349. Maximum Students Taking Exam 参加考试的最大学生数

Given a `m * n` matrix `seats` that represent seats distributions in a classroom. If a seat is broken, it is denoted by `'#'` character otherwise it i ......
LeetCode Students Maximum Taking 学生

CF1155F Delivery Oligopoly 警告与思考--zhengjun

警告: - 注意区分【强连通分量】,【边双联通分量】,【点双连通分量】。 思考: - 之前没有做到过边双连通分量的拆解; - 一个边双联通分量可以看作一个基环上不断加一条链; - 注意,这里加的链首尾可以为同一个位置。 到这步代码就好弄了。 ### 代码 ```cpp #include using ......
Oligopoly Delivery zhengjun 1155F 1155

CF1681E Labyrinth Adventures

目前为止我是 Luogu 上最优解,不保证后面会不会被神仙同学刷下来,比如 @sinsop90。 upd : 现在不是了,@JWRuixi 用循环展开把我爆踩/ll。 令 $a_{i,0}$ 表示第 $i$ 层上面那个门,$a_{i,1}$ 表示右边的门,$b_{i,0/1}$ 分别表示**它们连向 ......
Adventures Labyrinth 1681E 1681 CF

CF838B Diverging Directions

好像挺神奇的,也可能是我菜。 以下称前 $n-1$ 条边为「树边」,因为它们组成一棵树;后 $n-1$ 条边为「回边」,因为它们由树节点回到根。 就是对于一个询问,如果 $v$ 在 $u$ 的子树内,发现无论如何答案都要包括 $u\to v$ 的只经过树边的路径。那么只走这条路径一定是最优的,直接维 ......
Directions Diverging 838B 838 CF

CF1034E Little C Loves 3 III

太神仙了。 直接子集卷积肯定是不行的,1s 的时限和 62MB 的空间摆在那里。 那就要考虑使用模 $4$ 的性质乱搞了。 我们考虑给每个 $i$,不管它符不符合条件,赋一个权值。如果 $i\ \text{and}\ j\neq 0$,它对答案是没有贡献的,否则它能贡献到 $i\ \text{or} ......
Little 1034E Loves 1034 III

CF280D k-Maximum Subsequence Sum

大半个月前做的题,现在才写题解,/qd/qd。 贪心,选出 $k$ 个不相交子段的和的最大值,其实相当于每次把序列最大子段拎出来,加上去,然后取相反数。 证明的话可以考虑模拟费用流,$i\le n$,$S\to i$ 连边,$i\to i+1$ 连边,$i\to T$ 连边,边的流量均为 $1$,$ ......
Subsequence k-Maximum Maximum 280D 280

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