inversions problem 513g cf
CF676C 题解
使用尺取法(双指针法)。 由于字符种类只有 \(2\) 种,答案一定是全 a 或全 b。 情况 \(1\):全 a 快指针循环移动,并统计字符 b 的数量 \(cntb\),直到 \(cntb\) 即将超过 \(k\)。 情况 \(2\):全 b 同上。 答案即为两种情况取到的最大值。 AC cod ......
CF1100F Ivan and Burgers
CF1100F Ivan and Burgers Problem 给定一个长为 \(n\) 的序列,\(Q\) 查询区间异或最大值。 \(1 \le n, Q \le 5 \times 10^{5}\)。 Solution 1 幸运数字的序列版本,但数据范围更大了,三只老哥很难冲得过去。 思考线段树 ......
CF521E Cycling City
是一个比较无脑的算法 首先建点双,对每个点双考虑,发现点双无解当且仅当是一个环,耳分解一下非常好证明 然后只需要找到两个端点满足有三条路径即可,发现 \(\text{K4}\) 一定有解,于是缩一下广义串并联图,把缩剩下的两个点拿出来当端点跑三遍 bfs 就做完了,感觉连通性相关的图论题目每次就这些 ......
CF1886C Decreasing String 题解
Problem - C - Codeforces Decreasing String - 洛谷 p.s. 本题提到的所有 \(s_i\) 的 \(i\) 均表示 \(s\) 字符串的下标,而不是第 \(i\) 个字符串。因为我懒不想改了 每次遇到这种题都想不到最好的解决方法,我是不是应该把所有比赛的 ......
FreeBSD “su: Sorry” Problem
Solving the FreeBSD “su: Sorry” Problem The solution is to restart FreeBSD in single user mode and then make the change as root. This can be done by f ......
[CF1527B1] Palindrome Game (hard version)
题意略。 手玩一下,发现 polybeta Bob 赢面不大。 本来想模拟的。考虑结论题。 由于计入代价的操作只有 \(s_i=0\to1\) 一个,可以统计 \(0\) 的个数为 \(cnt\)。 由于这题和 Ezy Version 的唯一区别就是初始字符串是否为回文,很自然地想到对于初始串是否回 ......
CF763E Timofey and our friends animals题解
题目链接:CF 或者 洛谷 简单来说就是求 \([l,r]\) 这些点都存在的情况下,连通块的数量,看到七秒时限,而且每个点相连的边数很少,可以想到离线下来使用莫队类的算法解决 连通块问题,一般可以考虑使用并查集解决。对于并查集来说,它的增加是非常简单的,但删除是困难的,可持久化并查集时空常数都较大 ......
CF1656D K-good Solution
题目传送门 做法 奇偶性判定好题。 \(Case1:\) \(n\)为奇数 很显然,\(n\)为奇数时一定可以拆分成两个数\(x\)和\(y\),且\(x\)为奇数,\(y\)为偶数,发现\(x \mod 2=1,y\mod 2=0\),\(k\)也刚好位\(2\),所以当\(n\)为奇数时就直接输 ......
CF1638E Colorful Operations
题意 给定一个长度为 \(n\) 的数组,初始每个数的颜色为 \(1\),值为 \(0\)。 维护以下操作: 将 \(l \to r\) 的颜色替换成 \(c\)。 将数组中颜色为 \(c\) 的元素的值加上 \(x\)。 输出 \(a_i\) 的值。 \(n, q \le 10 ^ 6\) Sol ......
CF1545C AquaMoon and Permutations 题解
题目链接 点击打开链接 题目解法 很不错的题 首先题目保证了一定有解,所以不用考虑奇怪的无解情况 从列中的数字种类入手 如果一列中有数字 \(c\) 恰好只有第 \(x\) 行存在,那么第 \(x\) 行一定在答案序列中 考虑选了第 \(x\) 行会牵连一些行不能选,那么把这些行去掉,继续跑上面的操 ......
洛谷 P9061 [Ynoi2002] Optimal Ordered Problem Solver
洛谷传送门 QOJ 传送门 考虑操作了若干次,所有点一定分布在一个自左上到右下的阶梯上或者在这个阶梯的右(上)侧。此处借用 H_W_Y 的一张图: 考虑如何计算答案。对于一次询问 \((X, Y)\),如果它在阶梯左下方不用管它,否则考虑容斥,答案即为 \(x \ge X, y \ge Y\) 的点 ......
CF1910I Inverse Problems
题目链接:https://codeforces.com/contest/1910/problem/I 题意 有一个 \(n\) 个字符的字符串 \(S\),你需要不断从中删除一个长度为 \(k\) 的子串,直到串的长度变为 \(n \mathbin{\rm mod} k\),求能够产生的字典序最小的 ......
Codeforces 1909I - Short Permutation Problem
介绍一下 k 老师教我的容斥做法。 考虑固定 \(m\) 对所有 \(k\) 求答案。先考虑 \(k=n-1\) 怎么做。我们将所有元素按照 \(\min(i,m-i)\) 为第一关键字,\(-i\) 为第二关键字从小到大插入,即按照 \(n,n-1,n-2,\cdots,m+1,m,1,m-1,2 ......
CF1442D Sum
题意 给定 \(n\) 个递增数组。 \(k\) 次操作,每次你可以选择一个数组,使 \(ans\) 加上数组的第一个数,并删除。 问最大化的 \(ans\) 的值。 Sol 考虑当前选择的方案如何变得更优。 不难想到,如果当前有两个数组没有选满,则一定可以调整到其中一个变成空的方案,而使得答案不劣 ......
D. Mathematical Problem
原题链接 题解链接 code #include<bits/stdc++.h> using namespace std; int main() { int t; cin>>t; while(t--) { int n; cin>>n; if(n==1) { puts("1"); continue; } ......
CF1916G Optimizations From Chelsu 题解
Optimizations From Chelsu 题意 给定 \(n\) 个结点的树,边有正整数边权 \(w_i\)。定义 \(len(u,v)\) 表示 \(u\) 到 \(v\) 的路径的边数,\(\gcd(u,v)\) 表示 \(u\) 到 \(v\) 的路径上所有边权的 \(\gcd\), ......
CF1916F Group Division记录
题目链接:https://codeforces.com/contest/1916/problem/F 题意 已知点双连通的图 \(G = (V, E)\)。求一种划分方式 \(V = V_1 \cup V_2\),使得 \(|V_1| = n_1\),\(|V_2| = n_2\),且 \(G\) ......
CF1909G Pumping Lemma 题解
题目链接 点击打开链接 题目解法 很 \(nb\) 的字符串题 首先,\(x+y\) 是 \(s,t\) 的公共前缀,\(y+z\) 是 \(s,t\) 的后缀 所以如果 \(s,t\) 的最长公共后缀与 \(lcp\) 不交,那么无解,如果有解,则只留下 \(s,t\) 的最长公共后缀,因为前缀的 ......
CF493B 题解
好久没写题解了 思路 统计两个选手的分数,如果不是相同的就直接比大小,否则按字典序的大小,注意这里的字典序是两个选手的分数拼起来,比如样例 \(1\) 5 1 2 -3 -4 3 那么两个选手分别是 123 和 34。如果字典序相同,就看最后一个得分的选手是谁谁就赢。 代码 #include<ios ......
100道cf2100分
Problemset - Codeforces 考虑这些被释放的,值一定相同,并且等于区间gcd 于是用st表询问区间gcd,map套二分实现区间里某个数字出现次数 int n,a[100010]; int f[100010][20],lgn[100010]; map<int,vector<int> ......
CF&AT VP记录
ABC308 \(\operatorname{A}\sim \operatorname{F}.\) A 按题意模拟即可。 B 用 map 存一下即可。 C 考察 sort 的应用,但是胜率要开 long double 存。 D 因为 snuke 长度只有 \(5\),所以可以记搜,设 \(f_{x, ......
CF1844G 题解
鉴定为学 MO 学的。 MO 中著名的《数学奥林匹克小丛书高中卷》的第十五本曾经讲过,如果原方程较难解,可以考虑给左右两边同时对 \(M\) 取模,然后研究取模以后的问题,其中 \(M\) 为一个根据问题选取的适当的整数。 我们看见这个问题觉得很烦,因为大家都能发现这个条件给的相当于 \(d_i+d ......
CF1748F 题解
这 3000? 以下,\(\operatorname{op}(i)\) 代表对 \(i\) 进行一次操作。 我们考虑暴力。因为每一位都是分开处理的,我们考虑仅仅把一段区间的端点交换。即我们希望通过 \(\operatorname{solve(l, r)}\) 把 \(a_ia_j\) 交换而其他下标 ......
CF1438F 题解
如果能想到这道题用随机化,想来这道题的解法就显然了。但是为什么这道题一定要随机呢? 我们考虑一棵完美二叉树,编号随机。这棵树的熵毛估估一下应该是 \(O(\log^n n)\) 的,但是一次询问的话,考虑每次只能得到三个点的偏序关系为某几种情况的一种,这个熵是很小的,只有 \(O(\log n)\) ......
CF1239E 题解
因为懒得用 bitset MLE 了。所以各位想 A 这题的别偷懒用布尔数组! 本题解意在解释如何做类似的 dp 题,而不在于解释本道题做法的具体推导,只是给出一个思路。 我们观察发现,题目想让我们最小化一个最大值。我们并不能枚举每种方案去找最大值再取 \(\min\),这样复杂度爆炸而且没有前途真 ......
Problem I Like
\(\LARGE{\frac{\frac{\int_{0}^{+\infty}e^{-s}s^5ds }{2} +\frac{\int_{0}^{+\infty}e^{-\frac{t^2}{2}}dt}{\int_{0}^{+\infty}\sin t^2dt} (\frac{\sum_{n=0} ......
CF1827F 题解
不妨先考虑一个弱化版的问题,这个问题和原来的问题仅有一个区别:\(k\) 是给定整数。 称最后 \(n-k\) 个数是“特殊的”。那么我们可以注意到,每个特殊的数字的极大段必然递增放置或者递减放置。例如我们有排列 \([7,5,8,1,4,2,6,3]\) 而且 \(k=2\),那么极大段的下标应该 ......
[CF1902E] Collapsing Strings
题目链接 考虑拆贡献。 显然答案可以拆成对于所有 \(s_i\) 的每一个后缀的反串,作为前缀在所有串中的出现次数的加和。 这个东西字典树维护一下就行了。 不知道是谁考场上写哈希赛后被人对着模数卡掉了 点击查看代码 #include <bits/stdc++.h> #define FL(i, a, ......
CF958E1 题解
Meaning 在二维平面内,有位置不同且不存在三点共线的 \(R\) 个红点和 \(B\) 个黑点,判断是否能用一些互不相交的线段连接每一个点,使得每条线段的两端都分别是黑点和白点。 Solution 当 \(R\ne{B}\) 时,显然无法实现红点与黑点的两两组合,故题干所述的情况一定不存在。 ......