little 1333a artem cf

CF1881D Divide and Equalize

solution \(a_i\) 和 \(a_j\) 在操作前后的乘积是不变的,也就是总乘积是固定的。最后要求所有的元素相同,那也就是说所有元素的乘积 \(total\) 一定满足 \(\sqrt[n]{total}\) 是整数。看了看数据范围没有办法直接乘起来,于是考虑分解质因数,最后看一下每个质 ......
Equalize Divide 1881D 1881 and

CF963B Destruction of a Tree 题解

CF963B Destruction of a Tree 题解 洛谷题目链接 这里提供一个较为朴素的 DP 想法。 题意简述 给定一棵树,节点个数不超过 \(2 \times 10^5\),每次可以删掉度数为偶数的点。问最后能不能删完;能删完给出删除方案。 思路分析 首先可以随便选一个点作为根。 其 ......
题解 Destruction 963B Tree 963

CF1838E

题面传送门 description 给定长度为 \(n\) 的正整数序列 \(a\) 和正整数 \(m,k\),满足 \(a\) 的值域是 \([1,k]\)。求 \(a\) 是多少个长度为 \(m\) 且值域为 \([1,k]\) 的序列 \(b\) 的子序列。 \(n\leq 2\times 1 ......
1838E 1838 CF

CF1801C 做题笔记

题目链接 一道需要挖掘一些性质的 dpt,居然独立想出来了。 本蒟蒻太菜了只会树状数组的做法,单调栈不会。 先考虑只管对答案有贡献的音乐,这当然是正确的,因为我们可以把对答案没有贡献的音乐放到最后。 对于每一首乐曲,我们也能对它进行一个简单的处理来模拟听的过程,维护一个值 $lst$,每次输入的数 ......
笔记 1801C 1801 CF

CF938F Erasing Substrings 题解

Erasing Substrings 一个神奇的想法是设 \(f_{i,j}\) 表示在位置 \([1,i]\) 中,我们删去了长度为 \(2^k(k\in j)\) 的一些串,所能得到的最小字典序。使用二分加哈希可以做到 \(O(n^2\log^2 n)\),无法承受。 发现对于状态 \(f_{i ......
题解 Substrings Erasing 938F 938

CF261D Maxim and Increasing Subsequence 题解

Maxim and Increasing Subsequence 首先,我们可以发现,当这个重复次数很大的时候,答案就等于序列中出现的不同权值个数。实际上,这个“很大”就可以被当作“大于等于不同权值个数”。 不同权值个数实际上是 \(\min(n,m)\) 级别的,其中 \(n\) 是序列长度,\( ......
题解 Subsequence Increasing Maxim 261D

CF979E Kuro and Topological Parity 题解

Kuro and Topological Parity 我们考虑在一张染色完成的图里,我们连上了一条边,会有何影响? \(\bullet\) 在同色节点间连边——明显不会有任何影响。 \(\bullet\) 在异色节点间连边,但是出发点是个偶点(即有偶数条路径以其为终点的节点),终点的路径数增加了, ......
题解 Topological Parity 979E Kuro

CF264B Good Sequences 题解

Good Sequences 状态很显然,设 \(f[i]\) 表示位置 \(i\) 的最长长度。 关键是转移,暴力转移是 \(O(n^2)\) 的,我们必须找到一个更优秀的转移。 因为一个数的质因子数量是 \(O(\log n)\) 的,而只有和这个数具有相同质因子的数是可以转移的; 因此我们可以 ......
题解 Sequences 264B Good 264

CF908D New Year and Arbitrary Arrangement 题解

New Year and Arbitrary Arrangement 思路: 期望题果然还是恶心呀! 我们设 \(f[i][j]\) 表示当串中有 \(i\) 个 \(a\) 和 \(j\) 个 \(ab\) 时的方案数。为了方便,设 \(A=\dfrac{P_a}{P_a+P_b},B=\dfra ......
题解 Arrangement Arbitrary 908D Year

Maximums and Minimums (CF E)

思路: 分别求出 最小区间 和最大区间, 利用单调zai 处理即可 然后 在利用 调和级数 , 求最小值的倍数 后记: 为什么我不2个元素都求一个区间呢? ......
Maximums Minimums and CF

2020,2021 年 CF 简单题精选 做题记录

2023.10.12 开坑,打了几场 div.2 之后一直觉得这方面水平差太多,今天刚好在洛谷看到这个题单就准备开始做了,里面从黄到黑都有,我会尽量都做,并在这里记录。总共 49 题,我可能平时有时间就做一两题,估计是个长期坑了((。 题单链接 [Y] 表示独立完成,[N] 表示看题解之后完成。 ......
2020 2021 CF

Prefixes and Suffixes (CF D) (字符串翻转找性质)

思路: 利用操作 使得题目更好分析, t 的后缀,反转t , 来看t 的前缀, 实际操作的时候, 把s 和 t 的前缀在反转一下进行交换就可以了, 发现性质 1 C(si, ti) 他们的相对位置不会变化, 一直是匹配的 然后利用 翻转的性质, 一定会产生任意我想要的排列 (从后开始构造, 先把目标 ......
字符串 字符 Prefixes Suffixes 性质

题解 CF486D Valid Sets

题目链接 相当牛逼。 这种找数量的题型,确定树形 \(dp\) 没跑了。 首先思考常规树形 \(dp\),不难想到设 \(f_{u,a,b}\) 表示以 \(u\) 为根节点的子树内(包括点 \(u\)),最大值是 \(a\),最小值是 \(b\) 的连通子图数量,转移很容易,但是这样时间空间复杂度 ......
题解 Valid 486D Sets 486

Slime Escape (CF D) (贪心, 双指针最大有效权值单调增长)

补充: 每次操作可以往左 或者 右 走一步 思路: 性质: 以一边为重点使劲走, 然后 利用另外一边来给自己权值变大 当 这边要死了, 就把这边回退到最大值, 在走另一边, 看另一边能到哪, 这样每次都可以扩展最大值, 于是利用双指针? 也不是双指针, 就是 l,r 分别贪心地向左 和 向右 扩张 ......
指针 Escape Slime CF

[CF1098E] Fedya the Potter 题解

[CF1098E] Fedya the Potter 题解 前言 一道类欧好题。 题解 这道题让求 \(c\) 数组的中位数,那么有一个比较套路的方法就是二分答案 \(mid\) 然后计算 \(b\) 数组中区间和小于 \(mid\) 的区间个数进行 \(check\)。但是 \(b\) 数组总共有 ......
题解 Potter 1098E Fedya 1098

CF882E1+CF1882E2 Two Permutations 题解-构造题

CF882E1+CF1882E2 Two Permutations 题解-构造题 哇,人类智慧,太智慧了。。。 此题作为20231010联考的 T3。 感觉赛时根本没有去往这方面想。 CF1882E1 CF1882E2 E1 是简单版,就是没有要求操作数最小化。 E1-Easy Version 方法 ......
题解 Permutations CF 1882 882

CF1333A [Little Artem]

Problem 题目简述 给你一个 \(n \times m\) 的方格,构造一个方案,使得方案中 \(B = W + 1\)。 \(B\):相邻的格子有至少一个白色格子的黑色格子的个数。 \(W\):相邻的格子有至少一个黑色格子的白色格子的个数。 思路 分奇偶讨论。 \(n \times m\) ......
Little 1333A Artem 1333 CF

CF1766B [Notepad#]

Problem 题目简述 给你一个整数 \(n\) 和字符串 \(s\),问:能不能在小于 \(n\) 次操作的情况下,输出字符串 \(s\)。 有两次操作可供使用: 在已打出内容的最后添加一个字符。 复制已打出内容的一个连续的子串并加到内容的末尾。 思路 用到的容器:\(\text{map}\)。 ......
Notepad 1766B 1766 CF

CF1401B [Ternary Sequence]

Problem 题目简述 两个序列 \(A, B\)。这两个序列都是由 \(0,1,2\) 这三个数构成。 \(x_1,y_1,z_1\) 和 \(x_2,y_2,z_2\) 分别代表 \(A\) 序列和 \(B\) 序列中 \(0,1,2\) 出现的次数。 你可以重新排列两个序列中的元素,然后生成 ......
Sequence Ternary 1401B 1401 CF

CF85B [Embassy Queue]

Problem 题目简述 有 \(n\) 个人分别在 \(c_i\) 的时刻来,他们都要在 \(k_1\),\(k_2\) 和 \(k_3\) 窗口干不同的事,当有后面一人也排在在同一窗口时,必须等待前面的人办完事才能轮到他。 问怎么在最优分配情况下,使停留时间最长的人停留时间最短。 思路 这道题的 ......
Embassy Queue 85B CF 85

CF1610B [Kalindrome Array]

Problem 题目简述 给你一个数列 \(a\),有这两种情况,这个数列是「可爱的」。 它本身就是回文的。 定义变量 \(x\),满足:序列 \(a\) 中所有值等于 \(x\) 的元素删除之后,它是回文的。 思路 首先考虑暴力。暴力枚举数组中的每一个数,当作变量 \(x\),然后进行回文检验。 ......
Kalindrome 1610B Array 1610 CF

CF48C [The Race]

Problem 题目简述 现有 \(n\) 个已经加过油的加油站,如果当前剩余油量 \(< 10\) 升,则会加 \(x\) 升的油。 初始状态下,有 \(x\) 升油。每个加油站之间的距离为 \(100\) 米,耗油量为 \(10\) 升。 思路 首先,从左向右求出能到达的编号最小的车站,记为 \ ......
Race 48C The CF 48

CF1707B [Difference Array]

Problem 题目简述 设序列 \(a\) ,并且是单调递增的。设 \(a\) 当前长度为 \(l\),你要对 \(a\) 作差分,即令 \(b_i = a_{i+1} - a_i(1\le i < l)\),然后使 \(b\) 数组保持单调递增。 一直持续操作,直到 \(a\) 数组中只有一个元 ......
Difference 1707B Array 1707 CF

CF1796D 做题笔记

题目链接 一眼题,但这个 $k$ 迷惑了我很久。 由于我初始的思路没考虑 $x<0$,所以我们先默认 $x>0$。 考虑任意一个是最优答案的最大子段和,如果它的长度 $<k$ 那么它的每个元素一定都加上了 $x$,如果它的长度 $>k$,那么它的 $k$ 个元素一定加上了 $x$,剩余的一定减去了 ......
笔记 1796D 1796 CF

开学过半 (cf补题和算法训练)

Problem - A - Codeforces 题意: 给你一个n/2个元素的b数组,然后让你构造出一个n个元素的排列数组 其中这些p数组里的数有以下要求 注意这个p数组要求你搞字典序最小,也就是最好小的元素在前面 如果b = [4,3,6],那么可以从中得到的词法最小排列是p = [1,4,2, ......
算法

2023.9-10CF做题记录

Codeforces Round 898 (Div. 4) (CF1873) Coinred001,堂堂出道( 前面的水题打得太慢了(因为缺乏经验) A. Short Sort 水题,手动枚举6种情况是最快的能AC的。 B. Good Kid 看数据范围,\(O(n^2)\) 枚举即可。(Div4不 ......
2023.9 2023 10 CF

题解: CF768D Jon and Orbs

题解: CF768D Jon and Orbs 一句话体面:有k种不同的物品,每天等概率任取一种(不一定是新的种类)。q组询问,每组给出一个p,问取完这k件物品的概率不小于\(\frac{p}{2000}\)的最小天数 不用说,肯定是概率DP了 1.定义 :\(f_{i,j}\) 表示前\(i\)天 ......
题解 768D Orbs 768 Jon

[CF1870F] Lazy Numbers

Lazy Numbers 我觉得本题难度在于银剑的构造...... 我们把 k 进制下的数去掉前导零放在 Trie 树上,并且越高位的深度越小,这样我们看出某个节点的 dfs 序就是排名,称排名减数值为 va。我们需要求 va=0 的点数。 不难发现某一深度从左往右的 va 单调不降,所以可以二分求 ......
Numbers 1870F 1870 Lazy CF

CF1054D Changing Array

题意 给定 \(n\) 个小于 \(2 ^ k\) 的数。 可以任意让若干数 \(xor\) \(2 ^ k - 1\)。 问使得最终区间 \(xor\) 不为 \(0\) 的最大个数。 Sol 考虑前缀异或和。 记异或和的数组为 \(s\)。 现在一个区间的贡献变为 \(s_r \oplus s_ ......
Changing 1054D Array 1054 CF

CF1842G Tenzing and Random Operations 题解

题意 给定一个长度为 \(n\) 的正整数序列 \(a\),对该序列进行 \(m\) 次操作,定义每次操作如下: 从 \(\left[1, n\right]\) 中等概率选取一个 \(i\),对于 \(j \in \left[i, n\right]\),执行操作 \(a_j \leftarrow a ......
题解 Operations Tenzing Random 1842G