divisor 1864c chain cf

Codeforces Round 697 (Div. 3) A. Odd Divisor

给一个正整数 \(n\) ,判断 \(n\) 是否存在一个 \(> 1\) 的奇数因子。 只要 \(n\) 的唯一分解下存在除 \(2\) 以外的质因子,则 \(n\) 存在 \(>1\) 的奇数因子。 于是 \(n \neq lowbit(n)\) 则 \(n\) 存在奇数因子。(应用了 \(2^ ......
Codeforces Divisor Round 697 Div

[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

CF1766B [Notepad#]

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

CF1333A [Little Artem]

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

typescript: Chain of Responsibility Pattern

/** * Chain of Responsibility Pattern 责任链是一种行为设计模式, 允许你将请求沿着处理者链进行发送, 直至其中一个处理者对其进行处理。 * file: Chaints.ts * The Handler interface declares a method fo ......
Responsibility typescript Pattern Chain of

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

CF 1877 D

D. Effects of Anti Pimples 第一步先把所有的数据进行预处理,将单个位置选为黑色元素时的得分计算出来存入到数组\(b\)中。时间复杂度为\(O(nlog(n))\)。 之后将\(b\)进行排序,然后答案即为\(\sum\limits_{i=1}^{n}b[i]*2^{i-1} ......
1877 CF

CF1886C Decreasing String

单调栈的应用。 显然可以 \(O(n)\) 地找到 \(pos\) 所属的 \(s_i\) 段,所以我们只需要得到 \(s_i\) 即可。不难发现,删除元素的规则应该是从 \(1\) 到 \(n\) 枚举每个元素,删除它前面“紧邻的”比他大的元素(例如对于 eadcb 中的 b 删除掉 dc)。 赛 ......
Decreasing String 1886C 1886 CF

CF 1877 C

C. Joyboard 这道题需要进行分类讨论。 当\(k=1\)时,即构造的数组中所有元素皆为\(0\)才成立,所以输出\(1\)。 当\(k=2\)时,只有\(a[n+1]<=n\)或\(a[n + 1]=x\)(其中\(n|x\))才成立,所以答案是\(n+\lfloor \frac{n+m} ......
1877 CF

CF2400计数

感觉其他都没它重要,开写。 CF1628D1/2 看题解前: 游戏挺好玩,玩着玩着就可以推出式子:\(f_{i,j}=\frac{f_{i-1,j}+f_{i,j}}{2}\) 边界情况大概是 \(i=j\) 时 \(f_{i,j}=i\),\(j=0\) 时 \(f_{i,j}=0\) 直接暴力递 ......
2400 CF

[CF1508D] Swap Pass

D - Swap Pass 先将所有\(a_i==i\)的点都直接去掉 考虑将\(i\)向\(a_i\)连边,那么就会形成一个个的环 考虑只有一个环的情况,那么我们任意固定一个点\(x\),一直交换\(a_x\)与\(a_{a_x}\)直到\(a_x==x\),因为所有所有边都交于一点,所以这肯定是 ......
1508D 1508 Swap Pass CF

[CF1672G]Cross Xor

G - Cross Xor 对于\((n\&1)\&\&(m\&1)\)的情况,所有行、列的异或和的必须相等(异或和指当前行/列中所有元素的异或和) 每次修改的点\((x_1,y_1)\),\((x_2,y_1)\),\((x_1,y_2)\),\((x_2,y_2)\)使得所有行和列的异或和不会改 ......
1672G Cross 1672 Xor CF

CF1876E Autosynthesis

Description 给定一个序列 \(a_1, a_2, \ldots, a_n\),构造一个长度为 \(k\) 序列 \(b_1, b_2, \ldots, b_k\),其中 \(k\) 为任意正整数,使得: 在 \(a\) 序列中删除下标为 \(b_1, b_2, \ldots, b_k\) ......
Autosynthesis 1876E 1876 CF

[CF1394D] Boboniu and Jianghu

D - Boboniu and Jianghu 设\(dp[i][0/1]\)表示当前链从下往上是不增/减的,那么当\(u\)与\(v\)(其中\(fa[v]=u\))的\(b\)不相同时,\(dp[v][0/1]\)的第二维转移的状态是确定的,否则就是不确定的,这时直接强制其取\(0\),然后向每 ......
Boboniu Jianghu 1394D 1394 and

[CF878E]Numbers on the blackboard

E - Numbers on the blackboard 最后的答案肯定为\(\sum_{l\leq i\leq r} 2^{p_i}\times a_i\) 然后这个\(p\)满足以下限制: \(p_i=0\)(\(i=l\)) \(1\leq p_i\leq p_{i-1}+1\)(\(l<i ......
blackboard Numbers 878E 878 the

[CF1580D]Subsequence

D - Subsequence 发现\(f(i,j)\)不好处理,考虑将其转换成另一个函数 考虑笛卡尔树,\(\min(a_i,a_{i+1},...,a_j)\)就是在笛卡尔树上,\(i\)和\(j\)的\(lca\) 那么就可以将问题转移到笛卡尔树上,设\(dp[x][c]\)表示以\(x\)所 ......
Subsequence 1580D 1580 CF

[CF1285F]Classical?

F - Classical? 考虑先加上\(gcd(a_i,a_j)=1\)的限制 从大到小扫集合里的数,若扫到数\(x\)发现存在\(y>x\)且\(gcd(x,y)=1\),则所有\(x<t<y\)的\(t\)都不会再对答案有贡献了,因此使用栈存储扫过的元素,当扫到\(x\)时,只要栈中有与\( ......
Classical 1285F 1285 CF

CF906C Party 题解

Party DP 是门艺术。 \(n\leq 22\) 一眼状压。但是怎么状压就比较困难,因为同一个 \(f[x]\) 可以代表成千上万种含义。 这里我们采用,设 \(f[x]\) 表示当 \(x\) 集合中所有的点都处于同一个团内的最小代价。 则我们有 \(f[x \operatorname{or ......
题解 Party 906C 906 CF