sorting 1839d ball cf

cf1582F2. Korney Korneevich and XOR (hard version)(暴力优化)

cf1582F2 对于每种数可以维护一个列表v[x],表示到当前位置,最后一个数小于等于x,能够取到的值,对于当前的数ai,我们可以用v[ai]中的值x与ai异或,来更新v[ai+1],v[ai+2]后面的值。 然后就是有两个优化,每次我们更新完后,都对v[a[i]]清空,因为只有两个相同数之间的数 ......
Korneevich 暴力 version Korney 1582

CF1045J Moonwalk challenge

这题怎么才 \(\color{red}*2600\) 啊,我觉得有 $\color{maroon} *3000+ $,太菜了 /ll。 来一个官方题解做法,复杂度稍劣还要离线,被爆了 /ll。题解区大佬说哈希狗都不写。 洛谷 CF 给出一棵 \(n\) 个点的树,边上有字母。\(q\) 次询问,每次 ......
challenge Moonwalk 1045J 1045 CF

CF1890D Doremy's Connecting Plan

或许赛时根本不需要证明贪心的正确性。 我们发现 \(c\) 对于问题的影响不大,我们可以将每个 \(a_i\) 除以 \(c\),就转化为了 \(c=1\) 的情况。 一个自然的贪心是用 \(1\) 作为中心点去连接其他的所有点,这需要两条结论保证其正确性: 结论一: 如果当前图中还可以连边,点 \ ......
Connecting Doremy 1890D 1890 Plan

CF1861F Four Suits【网络流,贪心】

有 \(n\) 个人,\(4\) 种不同的卡牌,初始第 \(i\) 个人有 \(a_{i,j}\) 张第 \(j\) 种卡牌。 你是局外人,手里第 \(j\) 种卡牌有 \(b_j\) 个,你现在要把你的卡牌分给这 \(n\) 个人,使得分完之后每个人手里的卡牌总数相等,保证有解。 第 \(i\) ......
1861F Suits 网络 1861 Four

CF149E Martian Strings

感觉这题 SA 做法绝对不止 \(\color{orange} *2300\)。 洛谷 CF 给出字符串 \(s\),以及 \(m\) 个询问串 \(p_i\),每次询问是否能找到两个不交的区间 \([a,b],[c,d]\) 使得 \(\overline{s_as_{a+1}\dots s_bs_ ......
Martian Strings 149E 149 CF

cf1322BPresent(基数排序+双指针+拆位)

cf1322BPresent 首先拆位是显然的,对于两个数a[i],a[j],除了考虑当前位上的数,我们还要考虑是否会产生进位,我们可以利用基数排序+双指针,因为我们每次都是将低位的排好序了,所以我们可以用双指针计算进位,然后分类计算一下,当前为为1的情况即可。 #include<cstdio> # ......
基数 指针 BPresent 1322 cf

std::sort 传入成员函数指针报错的解决方案

问题引入 有一个类 A,A 的某个成员函数需要对 A 的某些变量进行 std::sort,同时要调用 A 的另一个成员函数作为比较器。如代码所示: struct A { vector<int> pos = {0, 4, 2, 5, 3}; bool cmp(int x, int y) { retur ......
指针 函数 成员 解决方案 方案

[CF1895F] Fancy Arrays

Fancy Arrays 洋洋强到爆炸啊。 根据某个差分数组可以得出最小值的位置(即使有多个也会因为差分数组有区别而对应不同原序列),所以钦定最小值后可以得出所有 \(a_i\geq0\) 的方案数,不难得出区间为 [0,x+k],并且最小的大于 x 的数一定合法。 然后减去所有值都在 [0,x) ......
Arrays 1895F Fancy 1895 CF

[CF1781F] Bracket Insertion

Bracket Insertion 托利斯特老了/kk 我一开始想的是 () 的权值为1,)( 的权值为-1,树上 dp 满足某子树由若干条类似斯特兰数方案的链构成。 但是有概率使得权值计算很难处理。 所以考虑把合法方案最终状态表示出来。 套路地设 ( 的权值为1,) 的权值为-1。 可以发现若新加 ......
Insertion Bracket 1781F 1781 CF

cf1709E. XOR Tree(启发式合并入门)

cf1709E. XOR Tree 贪心是显然的,关键是如何合并两棵子树的信息,可以采用启发式合并。 #include<cstdio> #include<algorithm> #include<cstring> #include<cmath> #include<map> #include<vecto ......
1709 Tree XOR cf

cf1834E. MEX of LCM(维护右端点计算区间lcm)

cf1834E 首先可以估计一下答案的量级,因为小于答案的质数都要必须要出现,5e6以内的质数大概就是3e5,所以答案不超过5e6。 我们维护以i右端点的lcm的值,这些值的数量不会太多,因为每次增长都至少×2,所以是log级别。 每次新加的时候记得更新和去重即可。 #include<cstdio> ......
端点 区间 1834 MEX LCM

CF1196B

题意: n个数,分割成k个部分,使得每份和都为奇数 做法: 一个序列的和的奇偶性和偶数没关系,所以只需要考虑奇数的个数 现在考虑两个问题: 1.如果奇数的个数小于最终要求的k,那么就无法完成分类(即是如果一个数一块也不行) 2.如果奇数的个数,记为cnt,cnt的奇偶性和k的奇偶性不同,例如cnt为 ......
1196B 1196 CF

CF1644D Cross Coloring

CF1644D Cross Coloring 题意: 在一个 \(n\) 行 \(m\) 列的网格里执行 \(q\) 次操作,每次操作在 \(k\) 种颜色中 (没有初始颜色) 选择一种给第 \(x_i\) 行和第 \(y_i\) 列染色且覆盖原有颜色,问最终染色方案数 做法: 因为后染的色会覆盖先 ......
Coloring 1644D Cross 1644 CF

CF689E 题解

很无语。 一开始脑抽,把交集和并集的概念搞混了。 后面猛然一想:并集?这不是大水题么。 然后 coding,ans 还忘记取模了。 回归正题,求的是 在 \(n\) 条线段中取 \(k\) 条线段,其中有多少个点被 \(k\) 条线段覆盖,求所有方案的答案和。 规约为贡献计算。 考虑点的贡献,假设本 ......
题解 689E 689 CF

CF1651F 题解

首先是数学表达这道题 考虑第 \(i\) 个怪物。 它跑完自己的全程扣得血是: \[\sum\min\{c_j,m_{j,lst} + \Delta t \times r_j\} \]\(\min\) 有点难搞,没啥好性质。 考虑拆开为两个部分: \[\sum c_j + \sum (m_{j,ls ......
题解 1651F 1651 CF

CF1838C题解

显然 \(1\) 不是质数,除二外偶数不是质数。 然后分类讨论 对于 \(m\) 为偶数,构造 \[\begin{bmatrix} 1 & 2 & 3 & \cdots & m \\ m+1 & m+2 & m+3 & \cdots & 2m \\ &&\cdot\\ &&\cdot\\ &&\cd ......
题解 1838C 1838 CF

CF773A 题解

真的是蓝题?这真的不是小学数学题? 我们是要求满足(其中 \(a\) 为正确数,\(b\) 为总数) \[\frac{x + a}{y + b} = \frac{p}{q} \]的最小 \(b\)。 我们可以先把右式的分子分母变化到与 \(\frac{x}{y}\) 类似的大小。 int bs1 = ......
题解 773A 773 CF

CF859G 题解

总结题意 显然可以转化为序列问题嘛。 给出序列 \(A\{a_i\}\),你需要通过若干次操作使其归零。 操作: 选定 \(d | n\)、\(k\)、\(r\),对于序列中所有满足 \(i \bmod d = r\) 的位置加上 \(k\)。 题解 很明显,加减相互抵消,对于所有 \(d\)、\( ......
题解 859G 859 CF

c: struct sort descending and ascending

/** * @file hello.c * @author your name (geovindu) * @brief * @ide vscode c11,c17 windows 10 * @version 0.1 * @date 2023-11-05 * * @copyright Copyrigh ......
descending ascending struct sort and

CF1851D

貌似我与大家后面的判断不太一样? 分析 由于前缀和的定义,我们可以知道他们的差分便是原数组,下面的差分数组,是题目给出的前缀和的差分。 于是,我们可以用个桶将 $1 \sim N$ 出现的数存起来。 随后判断每个数是否出现过,若没出现过,使计数器加一。 这里我们假设输出 YES。因为前缀和少了一个数 ......
1851D 1851 CF

CF1089K King Kog's Reception 题解

题目传送门 前置知识 线段树 解法 第一眼感觉和 luogu P1083 [NOIP2012 提高组] 借教室 很像。本题同样采用线段树维护,\(sum_{l,r}(1 \le l \le r \le 10^6)\) 表示从 \(l \sim r\) 时刻内骑士拜访的总时间,\(maxx_{l,r} ......
题解 Reception 1089K 1089 King

CF1621G

传送门 description 长度为 \(n\) 的序列 \(a\) 的一个严格上升子序列的权值为该子序列中严格比序列 \(a\) 中该子序列右边最大值小的数的个数,求序列 \(a\) 的所有严格上升子序列的权值和。 \(n\leq 2\times 10^5\) solution 离散化。 先转化 ......
1621G 1621 CF

CF390B Inna, Dima and Song Solution

转裁自我的洛谷博客 :https://www.luogu.com.cn/blog/653832/solution-cf390b 题目传送门 思路: 如果 $b_i \le 1$ 则无解。 如果 ceil((double)b[i]/2)>a[i],即最好情况下,两个人的音量平均,但是较大的音量还是大于 ......
Solution 390B Inna Dima Song

CF1721A Image题解

转裁自我的洛谷博客:https://www.luogu.com.cn/blog/653832/Code-of-CF1721A-Image 题意简述 给你一个2×2的矩阵,每次可以将一个或两个字母变成任意的其他字母,问最少用几步能将矩阵中的字母变成一样的。 思路 可以先分类讨论可能会出现的情况(如下表 ......
题解 1721A Image 1721 CF

CF1874F Jellyfish and OEIS

题意 给定一个序列 \(m\) ,你需要求出满足以下性质排列 \(p\) 的个数,对大质数取模: 对于任意 \(l,r\) ,\(p_{l...r}\) 为一个 \([l,r]\) 的排列与 \(r \le m_l\) 不同时成立。 Sol 考虑从题目的奇怪限制入手(也只能从这里入手),我们记一个区 ......
Jellyfish 1874F 1874 OEIS and

CF1875D

很简单的题。虽然没在考场上做出来 分析 我们经过思考,容易得出以下结论: 如果当前 $mex = x$,则下一个删的数一定小于 $x$。 如果 $mex = 0$,那么我们就可以不往下算了,因为它们对答案的贡献为 $0$。 我们设 $f[i]$ 表示当 $mex = i$ 时,$m$ 的值。 则有: ......
1875D 1875 CF

CF755F

前言 随机跳题跳来的。本来以为很简单,结果花了我这个蒟蒻三个多小时。果然还是太蒻了呀。还有题目中的拖拉机是什么呀? 于是,题解记之。 题意 传送门 分析 我们容易发现,若把每个人当做一个点,那么给人送礼物,则是向这个人连一条边。 看不懂?直接上图! 上图表示的是: 5 2 3 4 1 5 2 这一组 ......
755F 755 CF

CF213E Two Permutations

CF213E Two Permutations 题解 下文的 \(a+x\) 表示 \(a_1+x,a_2+x,...a_n+x\) 这个序列。 发现 \(n,m\) 不大,所以可以枚举 \(x\),然后快速判断是否合法。 考虑如何快速判断一个 \(x\) 是否合法。 注意到 \(a,b\) 都是排 ......
Permutations 213E 213 Two CF

CF 杂题集1 2200~2400

upd on 2023.11.02 初稿 upd on 2023.11.04 修正部分表达 感觉这一套题质量都很不错,有比较好的思维难度,又不是特别难(当然,对于我来说很难),而且有一些比较好的思路和套路。 题目链接均为洛谷链接。 CF1474D Cleaning 摘要: 性质:考虑端点,发现一定可 ......
2200 2400 CF

CF1842G

第一次听没听懂,补个笔记。弄懂这种奇妙拆贡献后感觉非常厉害。 答案的形式为:\(\prod (a_i + k \cdot v)\),这些 \(v\) 是前面的操作带来的影响。 我们考虑一个个加入这个 \((a_i + k \cdot v)\),并且维护很多个等价类,使得这个值可以根据分开等价类的那个 ......
1842G 1842 CF