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

题解 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

题解 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

CF1845D 最小子数组

易于发现的是,假设设置的保护分为k,且k是为了避免某一项负值ai。令s=sum(a0, ai-1),则将k设置为s一定更优于介于[s-ai,s)中的任何值。 那么就需要研究什么情况下,我们选择当前的前缀和作为k,以使得最终值最大。应该是为了避免最小的一段递减。 因而可以研究最小子数列,类kadane ......
数组 小子 1845D 1845 CF

CF1808C Unlucky Numbers 题解

可以证明答案是 $l$ 或 $r$ 的一段前缀,拼上后面全部相同的一段字符 $d$,证明方式类似数位 dp。能够自由填的数字一定是相等的,这样不会影响幸运值。前面那些不能自由填写的,就是 $l$ 或 $r$ 的一段前缀。假如不是 $l$ 或 $r$ 的一段前缀,必然填写相等的更好,而这种情况已经被考 ......
题解 Unlucky Numbers 1808C 1808

CF1848C Vika and Price Tags 题解

每组 $(a_i,b_i)$ 之间相互独立,于是我们只需要考虑一对数 $(a,b)$。 首先 $(0,0)$ 的情况是平凡的。考虑我们需要的状态 $(0,b)$,它的变化过程是这样的:$(0,b)\to(b,b)\to(b,0)\to(0,b)$,所以是三轮一个循环,且除了 $(0,b)$ 之外另外 ......
题解 1848C Price 1848 Vika

CF512D Fox And Travelling 题解--zhengjun

计数好题。 首先对于每个连通块独立考虑,最后合并答案。 发现 点数超过 1 的强连通分量一定删不掉。 - 若连通块中存在 点数超过 1 的强连通分量 - tarjan 缩点之后,称这些点数超过 1 的强连通分量为关键点; - 那么两关键点之间的点也不能删; - 于是对于剩下的点直接 dp 即可,由于 ......
题解 Travelling zhengjun 512D 512

题解 CF1842H【Tenzing and Random Real Numbers】

看了题解。好难受,想用积分求概率,算了半天。发现没啥规律,不是不能算,就是太可怕了。 ## Problem 有 $n$ 个 $[0,1]$ 范围内的均匀随机变量 $x_{1\cdots n}$ 和 $m$ 条限制,每条限制形如 $x_i+x_j\le 1$ 或 $x_i+x_j\ge 1$。请你求出 ......
题解 Tenzing Numbers Random 1842H

[论文阅读] CF-Font@ Content Fusion for Few-shot Font Generation

## 1. Pre title: CF-Font: Content Fusion for Few-shot Font Generation accepted: CVPR2023 paper: https://arxiv.org/abs/2303.14017 | https://openaccess. ......
Font Generation Few-shot CF-Font Content

题解 CF1784E【Infinite Game】

## solution DP。 - 0:前面是空的。 - 1:一只落单的 $a$。 - 2:一只落单的 $b$。 - 3:正在决斗的 $ab$ - 4:正在决斗的 $ba$。 画出一个有向图。 ......
题解 Infinite 1784E 1784 Game

CF1364E X-OR

# CF1364E X-OR 用这题总结一下交互题中的一种套路。 询问两个数的 or,给了我们两个想法。 1. 按位确定每个数。 2. **找到某些关键数,之后快速求出剩下的数**。 对于第一种想法,发现询问次数比较少,很难有优秀的做法,那么就考虑第二种。 先考虑找到怎样的关键数能够更好地帮助解题。 ......
1364E 1364 X-OR CF OR

CF1425D

一道计算方式很具有启发意义的题。 对于这种“选中产生贡献”的题,明显是需要对每个点算对总答案的贡献。但是由于“和的平方”的存在,这很难实现。 所以不妨在上面思路的基础上稍作改良:对每两个点算对总答案的贡献。不难发现,贡献的次数即为两个点都被选中的情况数。设 $a,b,c$ 分别为包含第一个点,包含第 ......
1425D 1425 CF

【图论】CF1508C Complete the MST

[Problem Link](https://codeforces.com/contest/1508/problem/C) 有一张 $n$ 个点的完全图,其中 $m$ 条边已经标有边权。你需要给剩下的边都标上权值,使得所有边权的异或和为 $0$,并且整张图的最小生成树边权和最小。 $n,m\le 1 ......
Complete 1508C 1508 the MST

CF1844E. Great Grids

# 题目大意 有一个n\*m的网格图,需要在每个格子内部填入A~C,要求满足: ① 每个2\*2的小方格都要有ABC ② 边相邻格子内字母不同 给出初始若干格子相同(满足角相邻)的限制,判断是否存在合法解 2 #define fo(a,b,c) for (a=b; a=c; a--) #define ......
Great Grids 1844 CF

CF1844F Min Cost Permutation

[题面传送门](https://www.luogu.com.cn/problem/CF1844F2) 先不考虑字典序的问题,只考虑最小值怎么求。 先考虑一个特殊情况:$c=0$,也就是说我想要相邻两项之差的绝对值最小。那么将其从小到大排序以后就满足要求。 我们猜想实际上更一般的情况不会和这个差太多。 ......
Permutation 1844F 1844 Cost Min

CF339 题解

# CF339 题解 这套题虽然是div2,但是具有一定的价值,这套题作为典型的div2题目,全套5道题都几乎用暴力方法解决,但是为什么这样是对的?令人深思。 ### A 红题,把个位数提出来再排序就好了。 ```cpp #include using namespace std; const int ......
题解 339 CF

CF1220F Gardener Alex 题解--zhengjun

发现根节点一定是 $1$,所以考虑两边的子树深度,然后发现只需要考虑一段后缀或前缀的深度即可。 所以循环位移后,可以从中间往两边构建笛卡尔树,实时维护深度即可。 ### 代码 ```cpp #include using namespace std; using ll=long long; const ......
题解 Gardener zhengjun 1220F 1220

CF1175F The Number of Subpermutations 对自己的警告--zhengjun

太久没见过启发式合并了,然后没想出做法。 首先笛卡尔树建出来。 然后直接枚举跨过 $mid$ 的长度为 $a_{mid}$ 的区间,RMQ $O(1)$ 验证即可。 发现这样的区间个数不超过左右区间大小的较小值,时间复杂度:$O(n\log n)$。 ### 代码 ```cpp #include u ......
Subpermutations zhengjun Number 1175F 1175

CF732E Sockets 题解

功率是 $x$ 的插座插入一个适配器后功率是 $y$,功率是 $y$ 的插座插入一个适配器后功率是 $z$,那么相当于功率是 $x$ 的插座插入两个适配器。 一个电脑可以用功率小的插座插入较少的适配器表达,也可以用功率大的插座插入较多的适配器表达。这里功率大的插座必然能表达出功率较小的插座。优先使用 ......
题解 Sockets 732E 732 CF

CF1197D

Yet Another Subarray Problem - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 这道题是一道dp状态跟模数有关的dp,难点就是想到以模数作为dp状态之一,因为 m 很小 (这个以模数作为dp状态是真的妙!!!) 设dp[i][j]为以 i 结尾,取了若干个 ......
1197D 1197 CF