cf-div 2866 div cf
Codeforces Round 907 (Div. 2)
Codeforces Round 907 (Div. 2) A. Sorting with Twos 题意: 给一个长度为n的数组,可以做任意次以下操作:选择一个整数m,将1-2m 的数减1。若能使数组变为一个单调递增的数组则输出YES,否则输出NO 分析: 只需要保证2m+1 -2m+1单调递增即 ......
CF GYM 104020 G
link 首先,因为 \(w_i\le 10^6\),有点大,所以我们想方设法把他变小一点。 设一个快为 \(w_i=k\times x+r\)。其实,如果我们把他分为 \(x\) 个大小为 \(k\) 的块,然后一个大小为 \(r\) 的块是最优的。因为切成其他的大小的块,我们可以调整成这种切法, ......
[CF576E] Painting Edges
Painting Edges 动态加边和二分图容易想线段树分治,分别维护 k 种颜色的并查集。 不过每条边的存在时间不能确定。 设边 i 的两次操作的时间为 \(x_i,y_i\),那么对于 \(t\in[x_i+1,y_i-1]\) 有两种情况,颜色改变或改色不变。 则我们把每次操作影响的时间放在 ......
CF1025F Disjoint Triangles
虽然我不懂计算几何,但是两个三角形互相进入,感觉很涩啊! —— By 【】 考虑两个互不相交的三角形,寻找一个方式能够不重不漏地统计它们。 容易发现两条不交的线段 \(A_1A_2,B_1B_2\) 之间,必然存在一条直线将 \(A_1A_2,B_1B_2\) 分在直线两端,且与 \(A_1A_2, ......
CF908H New Year and Boolean Bridges
这说明你那破子集卷积不是万能的。 显然题目要求的图 \(G'\) 是弱联通的,考虑给出的图 \(G\) 中两个点 \(i,j\) 之间 \(G_{i,j}\) 的条件转化为: \(G_{i,j}=\mathtt A\),说明 \(i\) 能到 \(j\) 且 \(j\) 能到 \(i\),则 \(i ......
8VC Venture Cup 2016 - Final Round (CF627)
A. XOR Equation 最低位没有加法进位产生的影响,考虑从低位向高位 dp。 设 \(f_{i,0/1}\) 表示正在考虑第 \(i\) 位,前 \(i-1\) 位都满足限制,有无进位的方案数。 转移的时候枚举这一位两个数分别填 \(a,b\),\(x_i\) 表示 \(x\) 在二进制下 ......
CF484D Kindergarten
CF484D Kindergarten 题目描述: 有一组数,你要把他分成若干连续段。每一段的值,定义为这一段 数中最大值与最小值的差。 求一种分法,使得这若干段的值的和最大。 数据范围: \(N < 10^6\), \(a[i] < 10^9\)。 思路: 仔细手摸几组数据,你会发现,我们将原序列 ......
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 ......
CF1866G
link 每个车厢的人可以到的是一段区间。 题面显然提示二分答案,二分答案 \(x\),每个车厢可以承受 \(x\) 个人,考虑如何 check 每个人能否都能到一个区间。 有一个比较显然的网络流来 check 的做法,原点向每个车厢连流量 \(a_i\) 的边,每个车厢向自己能到的区间连边,然后每 ......
CF1874F Jellyfish and OEIS 题解
题目链接 不明白出题人的脑回路是不是被宇宙射线改变过 /jy。 题目给出了若干个区间,要我们计算满足每个区间都不是对应下标的排列的数量,正着计算不满足要求的数量是困难的,我们将其容斥,转化为钦定一些区间要求其必须满足它是对应下标的排列,在下文中,我们称这样的区间为一个约束。 我们设约束的集合为 \( ......
CF1454F
link Soltion: 有一个比较显然的 \(O(n^2)\) 做法,枚举中间区间的左右端点,然后用前后缀 \(\max\) 和 st 表查询中间的 \(\min\),其实不用 st 表也行,确定左端点枚举右端点的时候顺便求一下就好。 考虑枚举左端点,以一个较快的方法求出右端点。 发现后缀 \( ......
CF600E Lomsat gelral
树上启发式合并(dsu on tree)通常用来查询不带修的子树信息,信息要求可合并。 对于一个结点 \(u\),其步骤如下: 求解其轻儿子的答案,同时清除递归产生的影响。 求解其重儿子的答案,保留递归产生的影响。 将轻儿子子树内的每个结点都合并进答案中,同时成为以 \(u\) 为根的子树产生的影响 ......
[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 行 ......
CF1451
CF1451 Subtract or Divide 显然 如果为偶数 那么我们将它变到 \(2\) 再 \(-1\) 即可 如果为奇数 我们先 \(-1\) 再转化为偶数的情况即可 对于 \(n\le 3\) 进行特判 #include <bits/stdc++.h> using namespace ......
CF708C Centroids
对于一个不是重心的点 \(u\),它必定有一棵子树 \(T\) 包含所有重心(如果有两个重心则它们必定相邻),显然 \(|T|>\lfloor\frac{n}{2}\rfloor\),这阻碍了它成为重心。贪心地想,我们要在 \(T\) 中找出一棵子树 \(S\) 使得 \(|S|\leq\lfloo ......
CF1764D Doremy's Pegging Game 组合数学
CF1764D Doremy's Pegging Game 你怎么连简单题也不会? 考虑满足条件当且仅当有连续的n/2向下取整段被删除。 考虑最终状态一定是一次删除联通了两个连续段,然后结束。 我们枚举这个连续段的长度 i 。 最后一个删除的位置有 n/2下取整*2-i 种方案,设另外删除了 j 种 ......
CF1870D Prefix Purchase 题解
Problem - 1870D - Codeforces Prefix Purchase - 洛谷 先说一个我想的错误的贪心:先用单调栈把原序列构造成单增序列,选出 \(\lfloor \frac{K}{c_i} \rfloor = \lfloor \frac{K}{c_1} \rfloor\) 的 ......
Codeforces Round 906 (Div. 2)
Codeforces Round 906 (Div. 2) A. Doremy's Paint 3 解题思路: \(a_1 + a_2 = a_2 + a_3\),所以\(a_1 = a_3\)。以此类推。所以整个序列最多出现两种不同的数字。 \(n = 2\)时,必然存在。 \(n = 3\)时, ......
Educational Codeforces Round 129 (Rated for Div. 2)
Educational Codeforces Round 129 (Rated for Div. 2) B可以看作一个无限长的序列由a进行重复拼接,我们直接计算一下是哪个即可。 C判断无解之后直接模拟即可 D IDA*就行每次从大到小搜,实际非常快。 #include<cstdio> #includ ......
CF1872E Data Structures Fan 题解
CF1872E 翻译 请把数据加强到 \(\sum n \leq 10^8\) 后重新思考。 我们维护全局中被标记的所有点的异或和。发现对于一次 \(1\) 操作,相当于让答案异或上区间的 \(a_i\) 异或和,因为这会让被标记的点变成没被标记的,而没被标记的点会产生贡献。 查询的话直接查询即可 ......
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}\ ......
CF1707 题解
CF1707 题解 A 考场上 1h 才出思路...弱智了。 我们将参加大于当前智商的行为叫做 “摆烂”。我们考虑如果现在摆一次,将来某一次不摆,那么现在不摆,将来那次开摆,中间过程的智商会加1。更优。所以一定一摆就摆到底。而且一定会摆到最后一个。 所以我们二分从什么时候开摆,看是否能摆到最后,中间 ......
Codeforces Round 907 (Div. 2)
Codeforces Round 907 (Div. 2) B题注意到每次都会至少下降1,所以不会超过30次,直接O(30n)即可 C题感觉可能比D和F还要思维一些。 肯定是尽量多积累combo一些然后一次清空,那么我们能清空的最大值就是当前的最大值,所以每次用小的来累计combo,然后消除当前的最 ......
Codeforces Round 906 (Div. 2)A-E1
A. Doremy's Paint 3 记数组中数的种类数为\(k\),当\(k=1\)时,答案为\(yes\);当\(k=2\)时,记两个种类的数的个数差为\(d\),当\(d≤1\)时,答案为\(yes\);其他情况答案为\(no\)。 时间复杂度:\(O(nlogn)\) 1 void sol ......
具有contenteditable属性的可编辑div模拟input的placeholder
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <style> .editabl ......
CF1879C Make it Alternating
传送门 设\(f_{i,0}\)表示将\([1,i]\)位变成以\(0\)结尾的字符串的最小步数。 \(f_{i,1}\)表示将\([1,i]\)位变成以\(1\)结尾的字符串的最小步数。 \(f_{i,2}\)表示将\([1,i]\)位变成空字符串的最小步数。 转移的时候分类讨论一下第\(i\)位 ......
CF1884B Haunted House 题解
CF1884B Haunted House 题解 借鉴了当前 另一篇题解,加了更多的说明。 简化题意 给定一个长度为 \(n\) 的二进制串 \(S\),求 \(f(1),f(2),\cdots,f(n)\)。 其中,\(f(i)\) 定义为,每次交换相邻的两个二进制位,将 \(S\) 的后 \(i ......
CF1889B
题面 给一个 \(n\) 个点的图,每个点 \(i\) 有点权 \(a_i\),初始图上没有边,你可以进行如下操作若干次: 若 \(S_i+S_j\ge i\times j\times c\),添加一条边 \((i, j)\)。其中 \(S_i\) 表示 \(i\) 所在连通块的点权和,\(c\) ......