题解p9580 round game

题解 CF1106E

小清新 DP 题。 定义 $f_{i,j}$ 表示在时刻 $i$,干扰了 $j$ 次,最小贡献。 定义 $nex_i$ 表示在时刻 $i$ 会收集哪个红包。 那么转移方程为: $$f_{d_{nex_i}+1,j}=\min(f_{i,j}+w_{nex_i})$$ $$f_{i+1,j+1}=\m ......
题解 1106E 1106 CF

题解 CF900D

如果 $y$ 不是 $x$ 的倍数,答案为 $0$。 否则计算有多少种数列满足所有数 $\gcd$ 为 $1$ 且和为 $\frac{y}{x}$。 定义 $f_i$ 表示和为 $i$ 且 $\gcd$ 为 $1$ 的数列的数量。 显然有如下等式: $$2^{x-1}=\sum\limits_{d\ ......
题解 900D 900 CF

题解 CF1271E

找规律。 我们看有哪些数的 $path$ 经过 $x$。 当 $x$ 为奇数时,有:$x,2x,2x+1,4x,4x+1,4x+2,4x+3...$ 当 $x$ 为偶数时,有:$x,x+1,2x,2x+1,2x+2,2x+3,4x,4x+1...$ 规律很明显,不解释。 因为当 $x$ 为奇数和 $ ......
题解 1271E 1271 CF

题解 CF840B

构造题。 首先判断无解。每选一条边贡献两个度数,所以如果没有 $-1$ 的点,且度数和为奇数,那么无解。 接下来考虑构造。我们考虑从图中扣下来一棵树(dfs 树),如果度数为奇数,令 $-1$ 的点为根,否则随便选一个。 定义 $tp_i$ 表示第 $i$ 个节点是否需要与父亲连边,$0$ 表示不用 ......
题解 840B 840 CF

题解 CF980D

有个显然的小 trick:如果两个数相乘为平方数,那么消去平方因子后这两个数相等。 于是我们可以暴力枚举,每出现一个新数就加一,用 unordered_map 维护,然后就 T 了。 考虑优化。我们对于每个数预处理出上一个与它相等的数的位置。这样每次枚举的时候只需要看 $pre_i$ 是否小于左边界 ......
题解 980D 980 CF

题解 CF213C

考虑朴素 DP。定义 $f_{i,j,i2,j2}$ 表示两个人分别在 $(i,j),(i2,j2)$ 时获得的最大收益。复杂度 $O(n^4)$,不行。 我们换种方法,定义 $f_{st,x,y}$ 表示两人同时走了 $st$ 步,分别向右走了 $x,y$ 步。显然如果向右的步数确定了,向下的也确 ......
题解 213C 213 CF

题解 CF930C

好题啊好题。 定义 $a_i$ 为有多少个区间包含 $i$。 拍脑袋一想,当且仅当存在顺序的三个坐标 $(i,j,k)$ 满足 $a_i>a_j$ 且 $a_j using namespace std; const int N=1e5+5; int n,m,a[N],f[N],g[N],c[N]; ......
题解 930C 930 CF

题解 CF1265E

期望 DP。 定义 $f_i$ 表示第 $i$ 个镜子照成功的期望天数,$p_i$ 为第 $i$ 天成功的概率,$q_i$ 为第 $i$ 天失败的概率。 根据题意容易列出方程: $$f_i=(f_{i-1}+1)\cdot p_i+(f_{i-1}+1+f_i)\cdot q_i$$ 移项得: $$ ......
题解 1265E 1265 CF

题解 CF156C

容易发现,如果把字母表映射到 $[1,26]$ 上,那么无论怎么操作总和都不变。 于是可已将问题转化为:有多少种长度为 $n$ 的序列,满足每个元素在 $[1,26]$ 之间,总和为 $sum$。 定义 $f_{i,j}$ 表示处理到第 $i$ 个元素,总和为 $j$ 的合法方案数。 转移方程为 $ ......
题解 156C 156 CF

题解 CF1202C

不错的题,需要点思维和码力。 容易发现,左右和上下互不影响,可以分开处理,这里以左右举例。 定义向左走一格 $-1$,向右走一格 $+1$,求个前缀和找到最大值和最小值,和出现最值的最早时间与最晚时间。定义为 $l,r,l2,r2$。 只有当我们放了一个 A 或 D 使得所有最大值 $-1$ 且最小 ......
题解 1202C 1202 CF

题解 P6772 [NOI2020] 美食家

观察数据范围,$T$ 很大,$n$ 很小,用矩乘。 对于一条边 $(u,v,w)$,我们将 $u$ 拆成 $w-1$ 个点,并连接 $(u_0,u_1,0),(u_1,u_2,0)...(u_{w-2},u_{w-1},0)$ 和 $(u_{w-1},v_0,c_{v})$,总点数 $5n$。 将美 ......
美食家 题解 美食 P6772 6772

题解 CF1338B

小清新思维题。 先找一个不是叶子的节点,令它为根。 那么当且仅当,对于每一个非叶子节点,它包含的叶子节点到它的异或路径相等时,才满足题目要求。 考虑第一问,显然如果每个叶子的深度奇偶性相同,可以全填一样的数字,答案为 $1$。反之为 $3$(可以在一条链上试一试)。 对于第二问,定义 $f_i$ 表 ......
题解 1338B 1338 CF

题解 CF799D

有趣的 BFS 题。 首先发现,一个数最多乘 $2^{17}$ 次后超过上限,所以我们可以考虑 BFS。 将 $a$ 数组元素从大到小排序,定义 $(x,y,t)$ 表示当前长为 $x$,宽为 $y$,操作了 $t$ 次。每次操作将两个数中没超过上限的乘上 $a_i$。 由于可以旋转 $90\deg ......
题解 799D 799 CF

题解 CF1313D

带有小 trick 的 DP,长知识了。 $m$ 很大,需要离散化。 为了方便,采用扫描线的方式,不对其进行实际意义上的离散,而是对于第 $i$ 个区间 $[l,r]$,插入 $(l,i),(r+1,-i)$ 两个 pair,最后排个序。这样相邻两个 pair 之间的部分就缩成了一个点。 同时我们还 ......
题解 1313D 1313 CF

题解 CF1271D

贪心+DP。 对于一个点,后选显然比先选好,也就是说每个点都对应了唯一一个来源。 于是我们可以把每个点所能回溯到的点的收益值从大到小排序,贪心地选前缀。 定义 $f_{i,j}$ 表示考虑了前 $i$ 个点,剩下 $j$ 个人,最大收益。 转移方程和 $01$ 背包的一样。 $$f_{i,j}=f_ ......
题解 1271D 1271 CF

题解 CF1379F2

数据结构之小清新思维题。 容易想到把 $2n\times2m$ 棋盘中每个 $2\times 2$ 的部分压缩,其中必须含有恰好一个棋子。 对于每个 $2\times 2$ 分两种情况讨论(可能同时具备或不具备以下两种): 1. 左上角不能用,记为 $L$。 2. 右下角不能用,记为 $R$。 然后 ......
题解 1379F 1379 CF F2

题解 CF9D

经典 DP。 定义 $f_{i,j}$ 表示 $i$ 个节点,深度小于等于 $j$ 的二叉树的个数。 则转移方程为: $$f_{i,j}=\sum\limits_{k=0}^{i-1}f_{k,j-1}\cdot f_{i-k-1,j-1}$$ 最终答案为 $f_{n,n}-f_{n,h-1}$。 ......
题解 CF9D CF9 CF 9D

题解 CF41D

基础 DP 题。 定义 $f_{i,j,k}$ 表示从第一行走到 $(i,j)$,且数字总和模 $p$ 等于 $k$。 转移方程为: $$ f_{i+1,j-1,(k+a_{i+1,j-1})\bmod p}=\max (f_{i,j,k}+a_{i+1,j-1}) $$ $$ f_{i+1,j+1 ......
题解 41D CF 41

题解 CF417D

$m\le 20$,状压 DP。 首先可以根据每个人的 $k$ 从小到大排序。 定义 $f_{i,j}$ 表示考虑到第 $i$ 个人,完成了 $j$ 状态的题目,不考虑显示器所需的最小价格。 转移显然为 $f_{i,j|s_i}=\min(f_{i-1,j}+x_i)$。 最终答案为 $ans=\m ......
题解 417D 417 CF

题解 CF985E

贪心+DP。 先从小到大排序。 定义 $f_i$ 表示序列 $[1,i]$ 能否分组。 转移为 $f_i|=f_j[a_i-a_j\le d,j\le i-k+1]$。 右区间可以直接算出来,左区间可以二分或根据单调性弄个指针。 定义 $sum_i=\sum\limits_{t=1}^{i}f_t$ ......
题解 985E 985 CF

题解 P6091 【模板】原根

题解太高深,自己整理一份。 **阶的定义:** 若 $\gcd(a,m)=1$,则使 $a^l\equiv1\pmod{m}$ 的最小的 $l$ 称为 $a$ 关于模 $m$ 的阶,记为 $\operatorname{ord}_m a$。 **阶的性质:** 根据欧拉定理,$a^{\varphi(m ......
题解 模板 P6091 6091

题解 P8338 [AHOI2022] 排列

恶心题。 每次操作,相当与把第 $i$ 个数置换到 $p_i$,于是可以连边。 因为 $i$ 和 $p_i$ 互不相同,所以对于每一个点,有且仅有一条出边和一条入边,即若干个简单环。 那么最少操作 $\operatorname{lcm}(a_1,a_2,a_3...a_{x-2},a_{x-1},a ......
题解 P8338 8338 2022 AHOI

题解 CF840C On the Bench

这是一篇简洁易懂的良心题解,提供了多种做法。 对于两个数 $x,y$,定义 $x=n^2 \cdot tx,y=m^2 \cdot ty$。如果 $x\cdot y$ 为平方数,则说明 $tx=ty$。所以我们可以将每个数除去其平方因子,比较相邻两数是否相等即可。 ## F1: 定义 $f_{i,j ......
题解 Bench 840C 840 the

题解 P3803 【模板】多项式乘法(FFT)

感觉题解区不是写的太高深,就是写的太高深。所以给初中、小学和幼儿园的萌新准备一篇简单易懂的良心题解~ ### 前置知识 一、多项式的系数表示法和点值表示法。$A(x)=\sum\limits_{i=0}^{n-1}a_i\cdot x^i$ 系数:$(a_0,a_1,a_2...a_{n-2},a_ ......
多项式 题解 乘法 模板 P3803

题解 P3248 [HNOI2016]树

有意思的题,927ms 拿下最优解。 点数最多 $10^{10}$ 个,没法暴力拼接,考虑简化大树。 每次拼接,我们记录 $x$,$to$ 和 $to$ 所在大树的根节点 $rt$。然后连两条边: $(rt,to)$ 和 $(to,x)$。本质上相当于把每次接上来的子树缩成一个点。 这样大树的点数最 ......
题解 P3248 3248 2016 HNOI

题解 Score of a Tree

[Score of a Tree](https://www.luogu.com.cn/problem/CF1777D) 思维题。 我们考虑一个点 $u$ 在所有时刻内的点权为多少。 可以发现,假如 $u$ 的深度为 $0$,那么 $t$ 时刻时它的权值为其子树内所有深度为 $t$ 的点的初始权值异或 ......
题解 Score Tree of

题解 P5339 [TJOI2019]唱、跳、rap和篮球

组合容斥问题。 定义 $\operatorname{sum}(i)$ 为至少有 $i$ 组人会讨论的方案数。 那么最终答案就为 $\sum\limits_{i=0}(-1)^i\times \operatorname{sum}(i)$。 在 $n$ 个人中选 $m$ 组人讨论的方案数为 $\dbin ......
题解 篮球 P5339 5339 2019

题解 Bracket Insertion

[Bracket Insertion](https://www.luogu.com.cn/problem/CF1781F) 神仙 DP 题,不愧是 tourist。 容易发现,括号序列一共有 $1\cdot 3\cdot 5...\cdot (2n-1)$ 种生成方式。 假如 `(` 为 $1$,` ......
题解 Insertion Bracket

题解 The Human Equation

[The Human Equation](https://www.luogu.com.cn/problem/CF1775E) 思维题。 我们考虑每次 $a$ 数组加一减一对于其前缀和 $sum$ 的影响。 可以发现,假设相邻两次加一和减一的位置分别为 $l$ 和 $r$,那么 $sum$ 在 $[l ......
题解 Equation Human The

题解 [ARC153B] Grid Rotations

[[ARC153B] Grid Rotations](https://www.luogu.com.cn/problem/AT_arc153_a) 有思维含量的一题。 我们横纵坐标分开考虑,对于每一个矩形,每次操作会使其内部元素的横坐标上下对调。 纵坐标也同理,左右对调。 而这种反转操作我们显然可以直 ......
题解 Rotations 153B Grid ARC