CF

CF1227D2

题面 如果我们将 $a$ 数组从大到小排序,那么显然的,前 $k$ 个数就对应着长度为 $k$ 的元素和最大的子序列中各元素的值。 由于要求字典序最小,所以我们将 $a$ 数组中的元素下标进行排序,在排序时以对应的元素值为第一关键字,以元素下标为第二关键字(排序后对应的元素值从大到小,大小相等的元素 ......
1227D 1227 CF D2

CF1699C

前排提醒:这是本题最烂的做法,代码长达 91 行。 由于题里提到了 $\operatorname{MEX}$,所以考虑该怎么求 $\operatorname{MEX}$。 我们使用主席树。由于主席树难以直接处理下标为 $0$ 的情况,所以给数组中的每个值都加上一个偏移量 $1$,同时下文提到的 $\ ......
1699C 1699 CF

CF1798C

题面 形式化题意: 给出长为 $n$ 的两个序列 ${a}$ 和 ${b}$,定义序列 ${c}$ 满足:$c_i=d_ib_i$,其中 $d_i\mid a_i$。求 ${c}$ 最少能被分成多少个连续段,使得每个连续段内的值相同。 首先对于一个 $i$,如果 $c_i$ 能和 $c_{i-1}$ ......
1798C 1798 CF

CF1798E

题面 看到要求每一位的答案,首先考虑倒着扫,因为加数一般都比删数好做。 对于任意长为 $m$ 的的序列 ${b}$,我们都可以通过将 $b_1$ 改成 $1$,将 $b_2$ 改成 $m-2$ 使得 ${b}$ 成为一个 multitest,因此操作数不会超过 $2$。 现在讨论答案的三种情况: 答 ......
1798E 1798 CF

CF1819B The Butcher

题意:有一个未知大小的矩形,每次横着或者竖着剪成两块,将其中一块放入盒子里,继续对另一块进行操作,最后把剩余的也放进盒子里,现在已知盒子内的所有矩形的长和宽,问原来可能的矩形长和宽是多少(矩形没有进行旋转) Solution 比较容易想到把所有的矩形面积和加起来就是原矩形的面积了,然后找到矩形中最大 ......
Butcher 1819B 1819 The CF

CF题解

E. Rearrange Brackets 2100 括号树 gq! https://codeforces.com/contest/1821/problem/E 题解:若我们把序列看作是一个由匹配括号组成的森林,外层括号是内层括号的父亲,则整个正则括号序列的cost可以看作是森林中所有点的深度之和, ......
题解

CF1821D Black Cells 题解 贪心

题目链接:https://codeforces.com/problemset/problem/1821/D 题目大意 在一条数轴上有无穷个点,下标为 $0, 1, 2, \ldots$,初始时每个点都是白色的。 你控制着一个机器人,初始时机器人位于坐标为 $0$ 的那个点。 机器人有两种状态:激活状 ......
题解 1821D Black Cells 1821

「解题报告」CF708E Student's Camp

感觉 这篇题解 的做法很强啊,贺一下。 连通:考虑将每一种情况对应一条路径。钦定这条路径为能往下则往下,不能往下就向左或向右走到第一个能往下的位置然后往下。 这样只考虑每一种路径,再对应的计算路径相应的情况的概率和。这个是容易计算的,而路径需要记录的状态少了一维,于是就可以 $O(nm)$ 的解决了 ......
Student 报告 708E Camp 708

题解 CF825E【Minimal Labels】

偶然间翻到三个月前写的这个题,发现现有的题解均未给出解法的正确性证明,只是不明不白地写了一些对理解做法毫无帮助的话。我认为解法的正确性并不显然,因此这篇题解主要给出正确性证明,补上逻辑漏洞。 解法与其他题解一样,即:建反图,然后跑拓扑排序,每次优先取出可以取出的编号最大的点,从 $n$ 到 $1$ ......
题解 Minimal Labels 825E 825

CF1714D 题解

CF1714D 题解 description 给定黑色文本 $t$ 和 $n$ 个字符串 $s_1,s_2...s_n$. 一次操作可以将 $t$ 中与 $s_i$ 相等的子串涂成红色。 一个位置多次涂色后仍是红色。$s_i$ 可以使用多次。 求将 $t$ 涂成红色的最小次数,并输出方案。 无解输出 ......
题解 1714D 1714 CF

CF ER147 div.2

A 简单计数题,判断前导零。 #include <bits/stdc++.h> using namespace std; int T; int main(){ cin >> T; while(T --){ char s[10]; cin >> s; int n = strlen(s); int an ......
147 div CF ER

题解:【CF235D】Graph Game

题目链接 根据期望的线性性,一次操作使得接下来要递归处理 $|G|$ 个点,将这些贡献分摊到 $|G|$ 个点上,这样我们接下来只需要计算概率。 首先考虑如果是树怎么做。操作等价于随机一个排列,顺次删掉排列中的点,并求出删掉当前点之前其所处的连通块的大小。记当前 $x$ 为点分治中心,点对 $(x, ......
题解 Graph 235D Game 235

CF1716D

Chip Move - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 背包DP: 这道题与完全背包不一样的地方便是:至少要拿一个物品。 DP[i,j]为前i个物品,每个至少拿一个,体积为j时的方案数 转移方程:DP[i,j]=DP[i-1,j-w[i]]+DP[i,j-w[i]](具 ......
1716D 1716 CF

CF1404 Div1 VP记录

A 略 B 看到这道题的第一眼:Bob 怎么赢? 样例二给了解释,对于一条链,Bob 看 Alice 到了哪边,跳到另一边即可。 大胆猜测,这是 Bob 能赢的唯一机会。其他时候 Alice 采用步步逼近一定能取得胜利(详情请参见国际象棋中的单后杀王)。 使用这个方法要满足三个条件: $db > 2 ......
1404 Div1 Div CF

CF 1627C-Not Assigning, 1400 / 树的构造与遍历 / 构造一棵树,使得每条边和任意相邻两条边之和都是素数

CF 1627C-Not Assigning 这个东西坑了我两三个小时: 入度和出度。不能在线判断入度或出度从而决定哪个点是起始点,因为可能现在决定为起点的点接下来的输入中还有点与他连边,且可以作为起点的点被这个点替换掉了,那么即 BUG 了。 收获: 如果两个素数之和仍为素数,那么其中一个素数必为 ......
素数 之和 Assigning C-Not 1627

C. Python Indentation CF909C--(dp)

#根据题目,又是求方案数的题目,先找到联系,熟悉规则; 看数据就猜是二维DP,题目分为不同字符 'f', 's'. ‘f’根据规则需要缩进一格,‘s’就是简单的输出一行。 所以根据题意:往前一格想,就设思想为:在第i格时有几格缩进的方案数,用f[i, j]表示。 当第i - 1格是‘f’时, 没办法 ......
Indentation Python 909 CF dp

Devu and Flowers CF451E

Devu 有 n 个花瓶,第 ii 个花瓶里有 fi 朵花。他现在要选择 s 朵花。 你需要求出有多少种方案。两种方案不同当且仅当两种方案中至少有一个花瓶选择花的数量不同 #include<iostream> #include<cstring> #include<algorithm> using n ......
Flowers Devu 451E 451 and

CF笔记

https://codeforces.com/problemset/problem/1819/B 分析:总面积总是不变的 考虑第一刀横着劈开 这样一块宽度是最大的 同理竖着劈开 高度是最大的 这样两种情况 通过算面积能够求出剩下的长宽度 考虑贪心 对于剩下的块 如果有长宽相匹配的就直接匹配 顺序不重 ......
笔记

练习记录-cf-Educational Codeforces Round 147 (A-D)

打的很烂的一场 C想了很久 D的贪心没有贪好 赛后一小时补起来了 谁是nc 我是nc! A. Matching 问有多少种情况能匹配 就计算?的个数 x10x10...... 如果第一个是? 那么就是9x10x10... 如果第一个是0 不能有前导0 就输出0 #include<bits/stdc+ ......

CF 580C- Kefa and Park, 1500 / 树的遍历 / 根节点到叶节点的路径上某性质的点不能连续超过 m 个

CF 580C- Kefa and Park 这个 1500 的题这么水? 这还不如 1200、1300 的思维题 我开始没考虑周全,这题给出的连边没有讲都是从父节点连向子节点,所有要建双边。 #include <iostream> #include <cstring> using namespac ......
节点 路径 性质 1500 Kefa

CF1797E 线段树 + 倍增 题解

Preface 有趣的一道 ds,赛后不看题解做出来了。 Solution 首先有一个性质:$\varphi(x)$ 经过 $\mathcal{O}(\log x)$ 次迭代后变为 $1$。 证明: 若 $x$ 为奇数,$\varphi(x)=x\sum_{i=1}^{k}\frac{p_i-1}{ ......
线段 题解 1797E 1797 CF

Text Editor (CF2E) (DP字符串2端分别dp)

思路: 首先贪心出性质, 通过模拟这个题意,一定是先右边弄完在去左边弄, 或者左弄完去右边弄, 于是左右2边分别dp一次 然后求和 dp[i][j],表示i 和 j 匹配的时的 最小操作次数 转移的时候有一个贪心结论,当 si != tj 时, 这个贡献时一个固定值, 正向:首先i- (公共的), ......
字符串 字符 Editor Text CF2E

CF1767F Two Subtrees

$\text{Solution}$ 高维莫队的一次尝试 最小众数似乎要求我们刻画能回滚的高维莫队 但这并不友好 修改有 $O(n^{\frac 7 4})$,询问只有 $O(n)$ 考虑友好的分块,那么就加个值域分块 询问便可以先得到众数的出现次数,然后逐块枚举找到存在众数的块,再在块中枚举数判断是 ......
Subtrees 1767F 1767 Two CF

CF 1820A-Yura's New Name, 800 / 思维 / ^-^ 或 ^^ 才合法

CF 1820A-Yura's New Name 处理方式 : 特殊情况提前判断 + 一般情况从首推到尾 #include <iostream> #include <cstring> using namespace std; const int N = 1e2 + 10; typedef long ......
思维 A-Yura 1820 Yura Name

CF1033G Chip Game 题解

传送门 CF1033G Chip Game 题目大意 有 $n$ 个石子堆,每堆有 $a_i$ 个石子。A 与 B 轮流取,A 每次只能取 $x$ 个,B 每次只能取 $y$ 个。 求对于所有 $x,y \in [1,m]$,A 必胜、B 必胜、先手必胜和后手必胜的数量。 $n \le 100,m ......
题解 1033G 1033 Chip Game

【题解】CF700E

Cool Slogans 给定一个字符串 $S$,要求构造字符串序列 $s_1,s_2,\ldots,s_k$,满足任意 $s_i$ 都是 $S$ 的子串,且任意 $i\in[2,n]$,都有 $s_{i-1}$ 在 $s_i$ 中出现了至少 $2$ 次(可以有重叠部分,只要起始、结尾位置不同即可) ......
题解 700E 700 CF

CF1810G The Maximum Prefix

题面传送门 挺好一题,综合了几种方法。 首先看到题会想到一个dp:设 $f_{i,j,k}$ 表示到了第 $i$ 个位置,历史前缀最大值为 $j$ ,当前前缀和为 $k$ 的概率,乘上期望就是答案。但是这个状态非常寄因为状态本身就有 $O(n^3)$ 了而且不易优化。所以我们需要另辟蹊径。 不妨假设 ......
Maximum Prefix 1810G 1810 The

CF 1195C-Basketball Exercise,状态机DP,1400

CF 1195C-Basketball Exercise 没怎么做过状态机 dp, 这个简单的题目甚至开始甚至搞出三维来。 #include <iostream> using namespace std; const int N = 1e5 + 10; typedef long long LL; / ......
C-Basketball Basketball Exercise 状态 1195

CF题解

E. Replace the Numbers 1900 思维 https://codeforces.com/problemset/problem/1620/E 题解:正着做比较困难,我们可以考虑从后往前做。一个数会被变成什么样子是取决于其后的2操作。2操作可以等价为一个变换,而位置越后的2操作相较前 ......
题解

CF449D Jzzhu and Numbers

CF449D Jzzhu and Numbers 黄金定律:给定序列求答案,但答案与序列顺序无关的题目,要么考虑把序列转权值序列,要么对序列排序。 二进制题按大小排序看起来就没啥用,那就转成权值序列。即,设 $c(i)$ 表示 $i$ 在 $a$ 中的出现次数。同时设 $V$ 为 $a$ 的值域。 ......
Numbers Jzzhu 449D 449 and