cf

CF1868B1 Candy Party (Easy Version) 题解

Problem - 1868B1 - Codeforces Candy Party (Easy Version) - 洛谷 喵喵题。首先每个数最终肯定变成 \(\overline a\) ,如果 \(\overline a\) 不是整数显然无解。 然后记 \(b_i=a_i-\overline a\ ......
题解 Version 1868B Candy Party

CF743C Vladik and fractions

大胆拆开,变成两个 \(\frac{1}{n}\),令 \(z=n\),那么 \(\frac{1}{x}+\frac{1}{y}=\frac{x+y}{xy}=\frac{1}{n}\)。 注意到分母是乘积,分子是和,可以令 \(x,y\) 的单位为 \(n\)。设 \(x=kn\),那么 \(x+ ......
fractions Vladik 743C 743 and

10.30 CF1685 题解

10.30 CF1685 A.Circular Local MiniMax 题意 给你 \(n\) 个整数 $ a_1, a_2, \ldots, a_n $ 。 问有没有可能将它们排列在一个圆上,使每个数字严格地大于其相邻的两个数字或严格地小于其相邻的两个数字? 题解 直接排序然后按照 \(1,4 ......
题解 10.30 1685 10 30

「Note」CF 杂题集 6

前言 难度:CF 2600-2700(有一道是 2500) 别问我为啥没有 1 到 5。 \(\color{blueviolet}{CF1473F}\) 此题是坏题,他卡你空间。 每一个元素有选或不选两种状态,并且有依赖项,元素的贡献有正负,数据范围不大,可以自然联系到最大权闭合子图,采用最小割模型 ......
Note

《CF1889C2 Doremy's Drying Plan (Hard Version)》 解题报告

考场上不会做。 如果考虑删掉哪些区间实际上不太可做。正难则反,转化贡献,考虑哪些点可以有贡献。 显然一个点如果可能有贡献,那么当且仅当覆盖它的区间 \(\le K\) 个。 于是我们记一个状态 \(f_{i,j}\) 表示前 \(i\) 个点中, \(i\) 是最后一个贡献的点,已经删除了 \(j\ ......
Version 报告 Doremy Drying 1889C

CF911G Mass Change Queries

CF911G Mass Change Queries 题解 首先这题有一个很一眼的分块做法,并且由于只需要维护颜色,所以会极其好写。 对每个块维护并查集,表示整块中颜色变成了哪个颜色,每个位置单独也指向一个颜色表示最初指向哪个颜色,这样就很好维护了。 但是发现值最大只有 \(100\),所以考虑和值 ......
Queries Change 911G Mass 911

CF1889C2 Doremy's Drying Plan (Hard Version) 题解

Description 有 \(n\) 个点和 \(m\) 条线段,你可以选择 \(k\) 条线段删除,最大化未被线段覆盖的点的数量,输出最大值,\(n, m \le 2 \times 10^5, k \le \min(m, 10)\) Solution 一道比较好玩的 dp 题。建议评级紫。 单独 ......
题解 Version Doremy Drying 1889C

CF1039D You Are Given a Tree

CF1039D You Are Given a Tree 更好的阅读体验 一种神奇套路:对答案根分,根分的依据是链的长度和答案大致是一个成反比的关系。 考虑确定了 \(k\) 怎么做。因为一个点只能在一条链里,所以 dfs 的时候如果能拼成一条链就一定会拼成一条链,不然就把贡献传给父亲继续尝试。 对 ......
1039D Given 1039 Tree Are

CF GYM 104020 G

link 首先,因为 \(w_i\le 10^6\),有点大,所以我们想方设法把他变小一点。 设一个快为 \(w_i=k\times x+r\)。其实,如果我们把他分为 \(x\) 个大小为 \(k\) 的块,然后一个大小为 \(r\) 的块是最优的。因为切成其他的大小的块,我们可以调整成这种切法, ......
104020 GYM CF

[CF576E] Painting Edges

Painting Edges 动态加边和二分图容易想线段树分治,分别维护 k 种颜色的并查集。 不过每条边的存在时间不能确定。 设边 i 的两次操作的时间为 \(x_i,y_i\),那么对于 \(t\in[x_i+1,y_i-1]\) 有两种情况,颜色改变或改色不变。 则我们把每次操作影响的时间放在 ......
Painting Edges 576E 576 CF

CF1025F Disjoint Triangles

虽然我不懂计算几何,但是两个三角形互相进入,感觉很涩啊! —— By 【】 考虑两个互不相交的三角形,寻找一个方式能够不重不漏地统计它们。 容易发现两条不交的线段 \(A_1A_2,B_1B_2\) 之间,必然存在一条直线将 \(A_1A_2,B_1B_2\) 分在直线两端,且与 \(A_1A_2, ......
Triangles Disjoint 1025F 1025 CF

CF908H New Year and Boolean Bridges

这说明你那破子集卷积不是万能的。 显然题目要求的图 \(G'\) 是弱联通的,考虑给出的图 \(G\) 中两个点 \(i,j\) 之间 \(G_{i,j}\) 的条件转化为: \(G_{i,j}=\mathtt A\),说明 \(i\) 能到 \(j\) 且 \(j\) 能到 \(i\),则 \(i ......
Boolean Bridges 908H Year 908

8VC Venture Cup 2016 - Final Round (CF627)

A. XOR Equation 最低位没有加法进位产生的影响,考虑从低位向高位 dp。 设 \(f_{i,0/1}\) 表示正在考虑第 \(i\) 位,前 \(i-1\) 位都满足限制,有无进位的方案数。 转移的时候枚举这一位两个数分别填 \(a,b\),\(x_i\) 表示 \(x\) 在二进制下 ......
Venture Final Round 2016 8VC

CF484D Kindergarten

CF484D Kindergarten 题目描述: 有一组数,你要把他分成若干连续段。每一段的值,定义为这一段 数中最大值与最小值的差。 求一种分法,使得这若干段的值的和最大。 数据范围: \(N < 10^6\), \(a[i] < 10^9\)。 思路: 仔细手摸几组数据,你会发现,我们将原序列 ......
Kindergarten 484D 484 CF

CF练习题17(DP)

Chocolate Bar 我们看到 \(n,m\le 30\) 想到暴搜。 考虑枚举分割线,一直到刚好满足需要或者只有一个巧克力的情况。 随手跑了个最优解。 inline int dfs(int n,int m,int k){ if(n*m==k)return 0; if(k<=0)return ......
练习题 17 DP

CF1866G

link 每个车厢的人可以到的是一段区间。 题面显然提示二分答案,二分答案 \(x\),每个车厢可以承受 \(x\) 个人,考虑如何 check 每个人能否都能到一个区间。 有一个比较显然的网络流来 check 的做法,原点向每个车厢连流量 \(a_i\) 的边,每个车厢向自己能到的区间连边,然后每 ......
1866G 1866 CF

CF1874F Jellyfish and OEIS 题解

题目链接 不明白出题人的脑回路是不是被宇宙射线改变过 /jy。 题目给出了若干个区间,要我们计算满足每个区间都不是对应下标的排列的数量,正着计算不满足要求的数量是困难的,我们将其容斥,转化为钦定一些区间要求其必须满足它是对应下标的排列,在下文中,我们称这样的区间为一个约束。 我们设约束的集合为 \( ......
题解 Jellyfish 1874F 1874 OEIS

CF1454F

link Soltion: 有一个比较显然的 \(O(n^2)\) 做法,枚举中间区间的左右端点,然后用前后缀 \(\max\) 和 st 表查询中间的 \(\min\),其实不用 st 表也行,确定左端点枚举右端点的时候顺便求一下就好。 考虑枚举左端点,以一个较快的方法求出右端点。 发现后缀 \( ......
1454F 1454 CF

CF600E Lomsat gelral

树上启发式合并(dsu on tree)通常用来查询不带修的子树信息,信息要求可合并。 对于一个结点 \(u\),其步骤如下: 求解其轻儿子的答案,同时清除递归产生的影响。 求解其重儿子的答案,保留递归产生的影响。 将轻儿子子树内的每个结点都合并进答案中,同时成为以 \(u\) 为根的子树产生的影响 ......
Lomsat gelral 600E 600 CF

[CF576D] Flights for Regular Customers

CF576D 把矩阵定义为 \(f_{t,i,j}\) 表示恰好 t 步后 i,j 是否可达,则广义乘法为 \[f_{t+1,i,j}=\sum_{k=1}^{n}f_{t,i,k}\wedge f_{1,k,j} \]因为是或操作,所以 \(f_{i,j}=1\) 时答案或上另一个乘数的第 j 行 ......
Customers Flights Regular 576D 576

CF1451

CF1451 Subtract or Divide 显然 如果为偶数 那么我们将它变到 \(2\) 再 \(-1\) 即可 如果为奇数 我们先 \(-1\) 再转化为偶数的情况即可 对于 \(n\le 3\) 进行特判 #include <bits/stdc++.h> using namespace ......
1451 CF

CF708C Centroids

对于一个不是重心的点 \(u\),它必定有一棵子树 \(T\) 包含所有重心(如果有两个重心则它们必定相邻),显然 \(|T|>\lfloor\frac{n}{2}\rfloor\),这阻碍了它成为重心。贪心地想,我们要在 \(T\) 中找出一棵子树 \(S\) 使得 \(|S|\leq\lfloo ......
Centroids 708C 708 CF

CF1764D Doremy's Pegging Game 组合数学

CF1764D Doremy's Pegging Game 你怎么连简单题也不会? 考虑满足条件当且仅当有连续的n/2向下取整段被删除。 考虑最终状态一定是一次删除联通了两个连续段,然后结束。 我们枚举这个连续段的长度 i 。 最后一个删除的位置有 n/2下取整*2-i 种方案,设另外删除了 j 种 ......
组合数学 Pegging 数学 Doremy 1764D

CF1870D Prefix Purchase 题解

Problem - 1870D - Codeforces Prefix Purchase - 洛谷 先说一个我想的错误的贪心:先用单调栈把原序列构造成单增序列,选出 \(\lfloor \frac{K}{c_i} \rfloor = \lfloor \frac{K}{c_1} \rfloor\) 的 ......
题解 Purchase Prefix 1870D 1870

CF1872E Data Structures Fan 题解

CF1872E 翻译 请把数据加强到 \(\sum n \leq 10^8\) 后重新思考。 我们维护全局中被标记的所有点的异或和。发现对于一次 \(1\) 操作,相当于让答案异或上区间的 \(a_i\) 异或和,因为这会让被标记的点变成没被标记的,而没被标记的点会产生贡献。 查询的话直接查询即可 ......
题解 Structures 1872E 1872 Data

Codeforces Round 906 Div. 1 (CF1889)

貌似现在发周六的 CF 题解已经失去了时效性,不过问题不大。 A. Qingshan Loves Strings 2 Description 定义一个长度为 \(k\) 的 \(01\) 串 \(s\) 是好的,当且仅当 \(\forall i\in [1,k],s_i\neq s_{k-i+1}\ ......
Codeforces Round 1889 906 Div

CF1707 题解

CF1707 题解 A 考场上 1h 才出思路...弱智了。 我们将参加大于当前智商的行为叫做 “摆烂”。我们考虑如果现在摆一次,将来某一次不摆,那么现在不摆,将来那次开摆,中间过程的智商会加1。更优。所以一定一摆就摆到底。而且一定会摆到最后一个。 所以我们二分从什么时候开摆,看是否能摆到最后,中间 ......
题解 1707 CF

CF1879C Make it Alternating

传送门 设\(f_{i,0}\)表示将\([1,i]\)位变成以\(0\)结尾的字符串的最小步数。 \(f_{i,1}\)表示将\([1,i]\)位变成以\(1\)结尾的字符串的最小步数。 \(f_{i,2}\)表示将\([1,i]\)位变成空字符串的最小步数。 转移的时候分类讨论一下第\(i\)位 ......
Alternating 1879C 1879 Make CF

CF

CF1612 CF1029 CF1672 CF1875 ......
CF

CF1884B Haunted House 题解

CF1884B Haunted House 题解 借鉴了当前 另一篇题解,加了更多的说明。 简化题意 给定一个长度为 \(n\) 的二进制串 \(S\),求 \(f(1),f(2),\cdots,f(n)\)。 其中,\(f(i)\) 定义为,每次交换相邻的两个二进制位,将 \(S\) 的后 \(i ......
题解 Haunted 1884B House 1884