rounding maximum 1857b cf
CF1877 Div2 A-E 题解
A 显然 \(n\) 个队的得分之和为 \(0\),因此答案为这 \(n-1\) 个数的和的相反数。 赛时代码 B 小贪心。 将所有人按 \(b\) 升序排序,\(b\) 相同时按 \(a\) 降序,对每个人按 \(b\) 进行分类讨论: 若 \(b< p\),那么我们一定要选这个人,因为选了这个人 ......
CF125E MST Company
CF125E MST Company 对于一类凸函数,有时我们寻找极值是简单的,但如果加上一维限制,问题就变成了函数在某个特定位置的值,这时问题不好处理 wqs 二分通过二分斜率后寻找极值,可以用复杂度加一只 \(\log\) 的代价消去一维的限制。 具体来说,在本题中,设以 \(1\) 为端点的边 ......
Codeforces Round 730 (Div. 2) A. Exciting Bets
给两个正整数 \(a, b\) ,可以执行以下操作之一任意次: \(a = a + 1, b = b + 1\) 。 \(a = a - 1, b = b - 1\) 。 需要保证 \(min(a, b) \geq 0\) 。 询问 \(gcd(a, b)\) 最大是多少,且到达最大 \(gcd(a ......
Codeforces Round 902 (Div. 1, based on COMPFEST 15 - Final Round) A~D
A. Helmets in Night Light 首先注意到一个关键性质 \(b_i \geq 1\),这就意味着当我们花 \(p\) 的代价解锁了 \(b_i\) 最小的后,仅凭接下来的“连锁反应”就能解锁全部的点。注意到我们“连锁反应”的一定是按 \(b_i\) 从小到大排序后的一段前缀(因为 ......
Codeforces Round 902 (Div. 2) (CF1877) B、C、D 题解
B 题目大意 你要传话给 \(n\) 个人,每传一下话需要花费 \(p\) ,当一个人被传话后,他可以最多传给 \(a_i\) 个人,每次花费 \(b_i\) 。问把话传给 \(n\) 个人的最小花费。 分析 首先传给第一个人只少要 \(p\) 下来贪心,每次让花费最小、且能够传话的人去传话。 考虑 ......
Codeforces Round 902 Div. 2 - A B C D
目录A. Goals of VictoryB. Helmets in Night Light 传送门 A. Goals of Victory 对给定 n - 1 组队伍的净得分求和取负即为最后一组队伍的净得分 B. Helmets in Night Light 赛时想法假了,赛后更正 对所有人按照传 ......
Codeforces Round #902 (Div.1)
A 注意到 \(a_i\ge 1\),因此我们先花 \(p\) 的代价买下 \(b\) 最小的,然后一定可以一直用当前可能的最小代价买下后续的人。不难发现这一定是最优的方案。 只需要将序列排序或者用 std::multiset 来维护。单组数据时间复杂度 \(O(n\log n)\)。 https: ......
「Round C10 B」间隔 题解
简要题意 本题有 \(T\) 组数据。 给定一个由 \(n\) 个元素构成的正整数数列 \(a_1,a_2,a_3...a_{n-1},a_n\)。 问至少需要插入多少个整数才能使得 \(a\) 的各相邻元素之差相等(不能插入在头尾)。 \(a\) 数列保证是单调不减的。 \(1 \le n \le ......
2023.10.7 LGJ Round
A 你每秒种可以施展一种秘籍 \(\{a_i,b_i\}\),使得后面 \(a_i\) 秒每秒都造成 \(b_i\) 伤害。问至少多少秒可以造成 \(M\) 的伤害。 共 \(n(n\le 3e5)\) 种秘籍,\(M\le 1e18,a,b\le 1e9\). 显然可以二分答案,考虑二分 \(mi ......
P6346 [CCO2017] 专业网络 & CF1251E1 Voting(Easy Version)
analysis 这个题目我们可以考虑用贪心来做。 我们不难看出来,这个题目是要让我们推出这么个结论:花小钱,办大人。 整体贪心的思路就出来了,然后就是实现部分。 因为我们认识的人随便是谁都可以。所以我们如果要买肯定是买最便宜的。这个性质可以用小根堆来维护。同时我们还可以维护我们可能结交的人数 \( ......
CF963D Frequency of String
Frequency of String 莪怺逺禧歡仳特噻特。 记每次询问中的字符串为 \(t_i\)。约定字符串下标从 \(1\) 开始。 发现 \(\sum |t_i|\) 与 \(|s|\) 和 \(q\) 同阶,考虑使用 bitset 进行字符串匹配。 我们对于每一种字符 \(c\) 开一个 ......
CF1856B Good Arrays
题意简述: 给定一个序列 \(a\),我们定义一个序列 \(b\) 是好的当且仅当对于 \(1\dots n\) 内的每一个 \(i\),\(a_i\neq b_i\) 且 \(\sum_{i=1}^na_i=\sum_{i=1}^nb_i\)(\(a_i\),\(b_i\) 均为正整数)。 现在有 ......
CF1857B Maximum Rounding
题目大意 给定一个自然数 \(n\),可以对任意一位进行四舍五入,可以进行任意次,求能得到的最大数。 \(n\) 的长度不超过 \(2\times 10^5\),没有前导零。 solution 首先,选择四舍五入的数一定 \(\ge 5\),不然对答案没有贡献。 其次,高位的数可能会受到低位的进位, ......
CF1857F Sum and Product
根据题意我们有:\(b=a_i+a_j\),\(c=a_i\times a_j\)。 可以发现 \(a_i\) 和 \(a_j\) 是一元二次方程 \(x^2-bx+c=0\) 的根。 那么就可以根据求根公式 \(x=\dfrac{-b\pm \sqrt{b^2-4ac}}{2a}\) 来求出 \( ......
Codeforces Round 901 (Div. 2) D. Jellyfish and Mex (DP)
Codeforces Round 901 (Div. 2) D. Jellyfish and Mex //思路:对于大于mex的数不做处理,把0删完为结束 //dp[j]为mex更新到j所需要的最小花费 //用mex=i时更新到j,转移方程为 dp[j] = min(dp[j], dp[i] + i ......
CF1844E Great Grids 题解
Description 定义一个矩形 \(a\) 是好的,当且仅当其满足以下条件: 矩形中每一个元素 \(x\) 都为 \(A,B,C\) 其中之一 每一个 \(2\times 2\) 的子矩形都必须包含三个不同的字符 共用一条边的两个元素不相等 给定 \(k\) 个限制条件,限制条件分为两类: \ ......
Codeforces Round 900 (Div. 3) E. Iva & Pav (位运算)
Codeforces Round 900 (Div. 3) E. Iva & Pav //思路:10^9转换为2^32上的位,进行位运算,a[x][i]为到x为止第i位的1个数前缀和 //对于与运算,如果当前i的前缀和不为 r-l+1 ,则这一位的与运算结果为0 //当找到从左往右第一个位置i为1 ......
Codeforces Round 901 (Div. 2) C. Jellyfish and Green Apple (位运算)
Codeforces Round 901 (Div. 2) C. Jellyfish and Green Apple //思路:浮点数转二进制,a/b的结果为 gcd(a,b)*最简分式(n/m)的结果 //苹果能分的前提是人数得是一个2的次幂数,通过切割只能分为形同0.001的二进制小数 //a/ ......
CF1051F The Shortest Statement
很经典的题了,不如说这种带有\(m-n\)很小这类限制的题的处理方法基本都如出一辙 由于图连通因此先搞个生成树出来,考虑非树边的数量很少,因此对于每组询问可以先用LCA求出两点间只经过树边的最短距离 考虑每条树边会如何影响答案,其实无非就是会经过这条树边的某个端点罢了,因此我们把非树边的端点都拿出来 ......
CF506D Mr. Kitayuta's Colorful Graph
好久没更新这个单题系列了,主要是最近没啥CF比赛空闲时间又少,今天忙里偷闲写了两个题 这个题就比较典了,两点是否连通一般都是想到并查集维护,现在的问题是要对每种颜色的边把贡献算清楚 很容易想到枚举所有颜色的边,每次求出所有连通分量后遍历一遍询问统计答案,这样正确性显然但复杂度是\(O(m\times ......
周赛 Round 14 2023.10.3
内部比赛链接:周赛14 A. 修改序列 modify 考虑且最小值和最大值之差最多为 \(1\),那么最终序列肯定呈 均分状态。又因为最终序列总和不变,则可以算出均分状态下的每一个值。然后每个数 \(A_i\) 则变成距离它最近的最终序列值就行。 B. 表示法 knuth 模拟题,注意需要在除了前缀 ......
「CF1491H」Yuezheng Ling and Dynamic Tree
\(\text{「CF1491H」Yuezheng Ling and Dynamic Tree}\) \(\text{Solution}\) 根据弹飞绵羊的思路,考虑分块维护一个 \(\text{top}(u)\) 表示 \(u\) 第一个不在当前块的祖先,设块长为 \(O(B)\),考虑如何求 \ ......
题解 CF600D Area of Two Circles' Intersection
题意简述 给出两个圆的圆心和半径,求两个圆的面积交。 思路 首先通过两圆半径和圆心的距离判断两圆是相离,包含还是相交。相离面积交为 \(0\),包含答案即为较小的圆的面积。当包含时相当于求两个弓形的面积。(见下图) 由正弦定理有: \[\begin{aligned} S_{\text{弓}ACD}& ......
题解 CF249E Endless Matrix
题意简述 在上图所示的矩阵中求一个子矩形的元素和。 思路 先可以考虑差分。然后问题转化为求以 \((x,y)\) 为右下角的矩形的元素和。先考虑 \(x\leq y\) 的情况。\(x>y\) 的情况同理可推。先可以算出以 \((x,x)\) 为右下角的,答案为 \(\sum\limits_{i=1 ......
代码源:a-good string(CF1385D,分支)
传送 点击查看代码 #include<bits/stdc++.h> using namespace std; char s[131080]; int _solve(int L,int R,char x) { if(L==R) return s[L]!=x; int M=L+(R-L)/2; int ......
【DP】CF1829G Hits Different 题解
CF1829G 先将整个塔变为一个直角三角形的模样。这时就可以很好的用数组表示了,这时发现答案就是一个倒着的等腰直角三角形的和(不考虑边界)。 考虑预处理。 令 \(a_i\) 为点 \(i\) 所在的行数,\(f_i\) 表示 \(i\) 号点的答案,\(g_i\) 表示 \(i\) 和 它正上方 ......
【分治】CF429D Tricky Function 题解
CF429D 令 \(sum_i\) 表示 \(\sum \limits_{j=1}^{i} {a_j}\)。 则 \(g(i, j) = (sum_j - sum_i)\)。 \(f(i, j) = (i - j)^2 + g(i, j)^2 = (i - j) ^ 2 + (sum_i - su ......
【二分图】CF1139E Maximize Mex 题解
CF1139E 翻译中有一句话:校长将会从每个社团中各选出一个人。 就是一些人被分为一组,从每组中选一些人出来。 这就很容易想到通过二分图的匹配。 \(\operatorname{mex}\) 运算有一个显而易见的贪心:枚举每个值能否被匹配,第一个找不到的值就是答案。 由于 \(\operatorn ......
Codeforces Global Round 3
C题就是考虑利用1,n两个端点就好,有些细节要特判。 #include<cstdio> #include<algorithm> #include<cstring> #include<cmath> #include<queue> #define A puts("Yes") #define B puts ......