cf-div 868 div cf
CF1523F Favorite Game
当前的状态有:传送门的激活状态,已经完成的任务数量,当前的位置(传送门/任务),经过的时间。显然我们会先将所有任务按照 \(t_i\) 升序排序。把前三维列为状态,后一维列为答案,此时我们可以得到一个状态数为 \(O(2^nm^2)\),转移为 \(O(m)\) 的 dp。 状态数很没救,显然要被优 ......
CF1149D Abandoning Roads
首先 \(a\) 边可以随便选。 显然,若某条 \(b\) 边的两端位于同一 \(a\) 连通块,一定不会被我们考虑。剩下的 \(b\) 边一定会将两个 \(a\) 连通块相连。 那么此时我们对于 \(b\) 边的约束是,位于一个环上的 \(b\) 边不能同时存在图中,即,我们的路径不能从当前连通块 ......
CF713E Sonya Partymaker
其实做题可以先算法导向一下的。 比如看到显著特征:【最大值最小】,我们第一反应还是应该为二分答案转判定的。 考虑二分答案 \(d\),此时转化为了,对于每个人 \(i\),选择一个朝向左/右,向该朝向覆盖 \(d\) 的距离,能否将整个环全部覆盖。 如果不是环的话,很 lantern 啊!考虑序列情 ......
CF1877E Autosynthesis
总结题目约束其实就是,所选数下标组成的集合和未选数值组成的集合相同。 我们发现该约束把值和下标联系在了一起,所以我们不妨考虑建出图来显式地表示二者,即,我们由 \(i\) 向 \(a_i\) 连边,然后考虑整张图。 首先这肯定是个内向基环树森林,然后我们要对其黑白染色,设黑色表示选择,白色表示未选择 ......
CF1877F Lexichromatography
题中的约束可以描述为: 红的字典序比蓝大。 对于每个数值,必然是红蓝交替涂色。 设总共出现了 \(c\) 个颜色,总涂色方案数就是 \(2^c\) 种,其中字典序情况包含 大于,小于,相等,且前两者方案数相同。所以不妨选取更简单的部分 相等 进行处理,设相等的方案数为 \(x\),则答案就为 \(\ ......
CF1439D INOI Final Contests
先总结一些充要条件。 一个人 \(i\) 选不到自己的 \(a_i\) 的充要条件为:若为左侧,则存在左侧的一个 \(j\) 满足 \(a_k\in[j,i]\) 且 \(b_k=R\) 的 \(k\) 的个数 \(> i-j\),右侧同理,满足其一即可。 一个方案不合法的充要条件为,若对于一个 \ ......
Codeforces Round 684 (Div. 2) B. Sum of Medians
定义 \(median\) 是一个非降序数组中第 \(\lceil \frac{n}{2} \rceil\) 的数。数组从 \(1\) 开始标号。 给两个数 \(n\) 和 \(k\) ,并给出一个长为 \(nk\) 的数组 \(a\) 。 需要分出为 \(k\) 个大小为 \(n\) 的数组,每个 ......
Codeforces Round 680 (Div. 2, based on Moscow Team Olympiad) B. Elimination
一个比赛有一百人进入决赛,但是需要经过两轮初赛的选拔。初赛的最终结果由两场初赛产生,不幸的是初赛的最终排名被丢失了。 在每场初赛中,参赛者的排名按非升序排序。当两位参赛者的成绩一样,参赛编号更小的靠前。 现在只知道如下信息: 第一场初赛中,第一百名的成绩为 \(a\) 。且第一场初赛中前一百名的选手 ......
CF786C Till I Collapse
题外话 根分纸张第一次自己做出根分虽然很水,纪念一下。 \(\text{Links}\) Codeforces Luogu 题意 给定一个长度为 \(n\) \((1\le n\le 10^5)\) 的序列 \(a\) \((1\le a_i\le n)\),对于 \(k=1,2,3,\dots,n ......
Codeforces Round 685 (Div. 2) B. Non-Substring Subsequence
对于一个长为 \(n\) 的 \(01\) 字符串 \(s\) 有 \(n\) 个询问。第 \(i\) 个询问被 \(l_i, r_i\) 描述 \(1 \leq l_i < r_i \leq n\) 。 对于每个询问,你需要确定 \(s\) 中是否存在一个子序列等同于子串 \(s[l_i \cdo ......
Codeforces Round 690 (Div. 3) C. Unique Number
给一个正整数 \(x\) ,需要构造一个最小的正整数 \(n\) 使得 \(\sum digt(n) = x\) ,并且 \(\forall i \neq j, digt(n)_i \neq digt(n)_j\) 。 首先观察到 \(0\) 没有贡献,且会增加位数,所以不能有 \(0\) 。 由于 ......
Codeforces Round 695 (Div. 2) A. Wizard of Orz
有 \(n\) 个数位板摆放成一条直线,每个数位板可以显示 \(0 \sim 9\) 的数字。最开始数位板显示的是 \(0\) 。每秒数位板上的数字都会加 \(1\) , \(9\) 的下一个数字是 \(0\) 。当一个数位板被暂停,它上面的数字将会定格在当前秒。 你必须对某个数位板执行一次暂停,在 ......
CF1886C Decreasing String 题解
题面 \(S_n\) 由 \(S_{n-1}\) 去掉一个字母得到,\(S=S_1+S_2+...+S_n\) 给定 \(S_1\) 求 \(S\) 的第 \(N\) 位 solution 我们先考虑怎样去字母能保持字典序最小 显然,我们发现如果一个字母比前面那个字母小,那么我们就要删除前面那个字母 ......
CF1886A Sum of Three 题解
Question 给定一个正整数 N ,我们需要找三个不同的整数x,y,z,使得 N = x+y+z,其中下x,y,z不能被三整除 solution 我们把N%3会有一些余数,我们针对余数来讨论,其中我们只关注xyz的余数 如果余数为0 那么也就可能是1+1+1,或者2+2+2,但是考虑到xyz不同 ......
CF1886D Monocarp and the Set
Questions Monocarp 有 \(n\) 个整数和一个集合,他需要把这 \(n\) 个数添加到集合中,每次添加一次 除了第一次,每次添加元素都会输出一个字符 如果当前添加的元素比原有的元素都要小,那么输出 \(>\) 如果当前添加的元素比原有的元素都要大,那么输出 \(<\) 否则输出 ......
CF1886B Fear of the Dark 题解
Question Monocarp 在一个二维平面上,他的初始点在 \(O=(0,0)\) ,他需要到 \(P(P_x,P_y)\) 不幸的是,他能走的范围在两个圆内,我们给出了两个圆的坐标 \(A=(A_x,A_y)\) ,\(B=(B_x,B_y)\) 两个圆的半径相同,我们需要找到最小的半径让 ......
CF1886E I Wanna be the Team Leader
贪心 #动态规划 Question Monocarp 是一家大型 IT 公司的负责人 他有 \(m\) 个项目个项目需要完成,第 \(i\) 个项目的难度为 \(b_i\) 他的团队离有 \(n\) 个程序员,第 \(j\) 个程序员的耐受能力为 \(a_j\) Monocarp 需要分配这些项目, ......
Almost Sorted (CF F ) (压状dp)
思路: 性质1, 相当于重新对这个序列排序 性质2, 等式关于 值域, 对于任意一个都满足, 那么就是 当前点 比前面放入的点 的最大值 - k 都要大, 比后面最小值+k都要小, --> 每一个点都要满足, 那么对于当前点的放置是有限制的,以 值域 来看 1-i 里面都已经放置了, 那么放置 后面 ......
CF1881F Minimum Maximum Distance
给定一棵树,树上的一些点被打上了标记,定义一个节点的贡献为其到所有标记节点距离的最大值,求最小贡献。 \(n \le 2 \times 10^5\)。 这道题的原题是 CF337D(甚至要更困难一些)。 很套路的换根 DP 啊。我们考虑设 \(f_i\) 为 \(i\) 子树内的标记节点到 \(i\ ......
Codeforces Round 903 (Div. 3)
A. Don't Try to Count 解题思路 我们发现当 \(x.size() < s.size()\) 的时候,我们必须要让 \(x+=x\),当 \(x.size() \ge s.size()\) 的时候,我们只要此时判一下 \(x\) 中是否存在子串 \(s\),存在则马上输出答案,否 ......
CF1881D Divide and Equalize
solution \(a_i\) 和 \(a_j\) 在操作前后的乘积是不变的,也就是总乘积是固定的。最后要求所有的元素相同,那也就是说所有元素的乘积 \(total\) 一定满足 \(\sqrt[n]{total}\) 是整数。看了看数据范围没有办法直接乘起来,于是考虑分解质因数,最后看一下每个质 ......
CF963B Destruction of a Tree 题解
CF963B Destruction of a Tree 题解 洛谷题目链接 这里提供一个较为朴素的 DP 想法。 题意简述 给定一棵树,节点个数不超过 \(2 \times 10^5\),每次可以删掉度数为偶数的点。问最后能不能删完;能删完给出删除方案。 思路分析 首先可以随便选一个点作为根。 其 ......
CF1838E
题面传送门 description 给定长度为 \(n\) 的正整数序列 \(a\) 和正整数 \(m,k\),满足 \(a\) 的值域是 \([1,k]\)。求 \(a\) 是多少个长度为 \(m\) 且值域为 \([1,k]\) 的序列 \(b\) 的子序列。 \(n\leq 2\times 1 ......
CF1801C 做题笔记
题目链接 一道需要挖掘一些性质的 dpt,居然独立想出来了。 本蒟蒻太菜了只会树状数组的做法,单调栈不会。 先考虑只管对答案有贡献的音乐,这当然是正确的,因为我们可以把对答案没有贡献的音乐放到最后。 对于每一首乐曲,我们也能对它进行一个简单的处理来模拟听的过程,维护一个值 $lst$,每次输入的数 ......
Educational Codeforces Round 156 (Rated for Div. 2) A-E
A题签到题 分余1 余2 余0讨论 #include<bits/stdc++.h> using namespace std ; #define maxn 400100 #define int long long int read(){ int ans = 0 , f = 1 ; char ch = ......
CF938F Erasing Substrings 题解
Erasing Substrings 一个神奇的想法是设 \(f_{i,j}\) 表示在位置 \([1,i]\) 中,我们删去了长度为 \(2^k(k\in j)\) 的一些串,所能得到的最小字典序。使用二分加哈希可以做到 \(O(n^2\log^2 n)\),无法承受。 发现对于状态 \(f_{i ......
CF261D Maxim and Increasing Subsequence 题解
Maxim and Increasing Subsequence 首先,我们可以发现,当这个重复次数很大的时候,答案就等于序列中出现的不同权值个数。实际上,这个“很大”就可以被当作“大于等于不同权值个数”。 不同权值个数实际上是 \(\min(n,m)\) 级别的,其中 \(n\) 是序列长度,\( ......
CF979E Kuro and Topological Parity 题解
Kuro and Topological Parity 我们考虑在一张染色完成的图里,我们连上了一条边,会有何影响? \(\bullet\) 在同色节点间连边——明显不会有任何影响。 \(\bullet\) 在异色节点间连边,但是出发点是个偶点(即有偶数条路径以其为终点的节点),终点的路径数增加了, ......
CF264B Good Sequences 题解
Good Sequences 状态很显然,设 \(f[i]\) 表示位置 \(i\) 的最长长度。 关键是转移,暴力转移是 \(O(n^2)\) 的,我们必须找到一个更优秀的转移。 因为一个数的质因子数量是 \(O(\log n)\) 的,而只有和这个数具有相同质因子的数是可以转移的; 因此我们可以 ......
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 ......