educational codeforces round 1879

Educational Codeforces Round 147 (Rated for Div. 2) A~E 题解

A Link。 模拟,代码。 B Link。 模拟,代码。 C Link。 我们设 $c$ 为最后相同的字符。 性质:我们一定不会删除字符 $c$。 因此以 $c$ 为最后字符的操作次数就是不包含字符 $c$ 的极大段的最小操作次数的最大值。 对于一个长度为 $l(l\ge 1)$ 的段,它的最小操 ......
题解 Educational Codeforces Round Rated

Codeforces 894D Ralph And His Tour in Binary Country

预处理出对于 $u$ 节点其子树内节点(包括 $u$)与 $u$ 的距离,从小到大排序得到 $ds_u$ 同时对 $ds_u$ 进行前缀和处理 $dh_{u, i} = \sum\limits_{j = 1}^{i} ds_{u, j}$ 这样设 $tot$ 为 $ds_u$ 二分得到的 $ds_{ ......
Codeforces Country Binary Ralph 894D

Codeforces Round 868 (Div. 2)

题目链接 C 核心思路 一定要看清楚题目,题目是要我们最小哦。 首先看可不可抽像为数学表达式,答案肯定是可以的。 x=p1^d1*p2^d2*..*pn^dn; D=\sum{(d1+1)*(d2+1)*(d3+1)*...(*(dn+1))}; 这个D表示的x的约数的个数,这个公式还是很好理解的, ......
Codeforces Round 868 Div

Codeforces 1229B Kamil and Making a Stream

$\gcd$ 一个性质:对于正整数 $x$, 重复 $x\leftarrow \gcd(x, i)$($i\ge 0$)直到 $x = 1$,$x$ 出现的值个数上限为 $\log_2(x)+1$ 证明:考虑到 $x$ 是逐渐变小,则在 $x$ 变小的情况下,对于 $x = \prod_{i=1}^ ......
Codeforces Making Stream 1229B Kamil

Codeforces Round 869 (Div. 1)

C 根据初中数学知识,恒成立问题考虑未知数x每一项的系数,然后得到(d+1)个等式,根据前两个就可以推出$s=\frac{b_{d-1}-a_{d-1}}{da_d}$且$a_d=b_d$ 但是一直不会用题目给的n个点值求出最高的两项系数(或它们的比值),并且怀疑是否把(d+1)个等式全部用到会更好 ......
Codeforces Round 869 Div

Codeforces Gym 103439D - LIS Counting(猜结论+状压)

一道需要一些猜结论技巧的中档题。 首先突破口在于排列长度恰好等于不是额外输入的某个数 $k$ 而是 LDS 与 LIS 的乘积,这显然启示我们去找一些性质。根据 dilworth 定理,最长反链等于最小链覆盖,故 LIS 的长度,就是最少需要的递减数列的个数使得每个元素被覆盖至少一次,而每个递减数列 ......
Codeforces Counting 结论 103439D 103439

Codeforces Round 869 (Div. 2) A-C

A. Politics 思路 与第 $1$ 个人的意见不同的人都要删除 代码 #include<bits/stdc++.h> using namespace std; int main() { int T; cin>>T; while(T--) { int n,m; cin>>n>>m; strin ......
Codeforces Round 869 A-C Div

Codeforces Round 869 (Div. 2)

Preface 一把回到紫名还是很舒服的,D题手比较稳猜了点性质水过 主要还是C脑抽了想了挺久才看出来是个丁真题,不然最后过了D之后30min可以看看E的 由于要写学校的图论专题所以接下来一段时间的CF补题计划就要先停一停了 A. Politics 傻逼题,当某个人的串和第一个人有任意一个位置不同时 ......
Codeforces Round 869 Div

Codeforces Round 823 (Div. 2)C

C. Minimum Notation 思路:我们可以进行的操作时将一个位置的数删除然后在任意位置处添加一个比当前数大1并且小于9的数,所以我们的操作只会让一个数变大,我们统计一个最大值的后缀,贪心的考虑如果当前数的后面有比他小的数的话,我们就需要让这个小的数往前走才能使字典序变小,如果当前值小于< ......
Codeforces Round 823 Div

Codeforces Round 867 (Div. 3)

题目链接 E 核心思路 首先我们先考虑什么情况下是肯定不可以交换成功的: aaabc.比如像这种a的个数超过了我们整个字符串一半的长度就肯定是不可以的。然后剩下的情况肯定都是可以的。 然后考虑怎么样可以使得交换次数最小呢: aa aa bb cc dd ff。 我们发现这组的话我们只需要交换两次,也 ......
Codeforces Round 867 Div

codeforces div1A

A. Circular Local MiniMax 题目翻译:给我们一个数组(循环的也就是1和n是相邻的),我们可以对数组进行任意调序,对于每个数b[i]要求满足b[i] < b[i - 1] && b[i] < b[i + 1] 或者满足b[i] > b[i - 1] && b[i] > b[i ......
codeforces div1A div1 div 1A

Codeforces Round 869 (Div.1 & Div.2) 题解

2A. Politics 因为编号为 $1$ 的人一定不会离开,那么最后留下的人一定要和编号为 $1$ 的人的所有参数都一致,所以计数即可。 #include <bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> #include <ext ......
题解 Codeforces Div Round 869

Educational DP Contest

Educational DP Contest ATcoder_link 夯实基础的好东西 I 记录一下此时第 i 个有多少概率小于等于 j 的就可以了。 #include<bits/stdc++.h> using namespace std; const int N=3005; #define db ......
Educational Contest DP

Codeforces Round 825 (Div. 2)——B

#include<bits/stdc++.h> using namespace std; typedef long long ll; #define endl "\n" inline int gcd(int a, int b) { return b > 0 ? gcd(b, a % b) : a; ......
Codeforces Round 825 Div

Codeforces Round 863 (Div. 3)———E

题意:给定一个k,问由012356789组成的数字第k大的是多少 链接:Problem - E - Codeforces #include<bits/stdc++.h> using namespace std; typedef long long ll; #define endl "\n" /* 思 ......
Codeforces Round 863 Div

Codeforces Round 855 (Div. 3)--E

题意: 给定一个k,可以任意次交换满足 | i - j | = k 或 | i - j |=k+1 的两个位置的元素 很容易发现有区间内的字符是可以任意交换的,但是一个个字符考虑太混乱了(就是这样子把脑袋搞晕了),从左考虑那么(1,n - k)这个区间可以任意交换,从右考虑(k + 1, n)这个区 ......
Codeforces Round 855 Div

Codeforces Round 855 (Div. 3)--D

题意: 给定一个字符串,删除其中连续两个字符,问有多少种不同字符串的情况 #include<bits/stdc++.h> using namespace std; typedef long long ll; #define endl "\n" //开始时假设每个点都对答案有贡献,考虑什么时候没有贡献 ......
Codeforces Round 855 Div

Codeforces 1804H - Code Lock(状压 dp)

对于一种排列方案,答案显然等于相邻字符在环上对应的劣弧长度之和。 然后其实你可能会想到很多状压 / 折半搜索方法,包括但不限于枚举一半的信息然后折半搜后一半,但稍加思考会发现这些方案都避不开记录元素之间的相对顺序,而但凡涉及到这一点,复杂度都是阶乘起步。因此我们只能另辟蹊径。 考虑 $k$ 是偶数的 ......
Codeforces 1804H 1804 Code Lock

Codeforces 1799H - Tree Cutting(树形 dp)

思考的时候一直卡在不会在低于 $O(n)$ 的时间内储存一个连通块的 $siz$ 有关的信息,看了洛谷题解之后才发现我真是个小丑。 树形 DP。对于一条我们需要操作的边 $(i,fa_i)$,我们将其分为保留子树和删除子树两种类型,对于删除子树,我们在判定其是否合法时候改为判定删除的连通块大小是否为 ......
树形 Codeforces Cutting 1799H 1799

Codeforces 1815E - Bosco and Particle

首先,对于每个 $s_i$,我们只用保留其最小周期,证明显然。 同时以多个光电门为研究对象显然状态数过多,不方便统计。考虑一下连接不同光电门的纽带是什么:显然是相邻光电门之间的空隙。对于每个光电门 $i$,如果我们只保留 $i$ 作为唯一的光电门,那么显然有 $0\to 1$ 和 $1\to 2$ ......
Codeforces Particle 1815E Bosco 1815

Educational Codeforces Round 1

A. Tricky Sum 公式求出1 到 n的和,然后枚举二等整次幂。 #include <bits/stdc++.h> using namespace std; #define int long long void solve(){ int n; cin >> n; int sum = ( 1 ......
Educational Codeforces Round

Educational Codeforces Round 145 (Rated for Div. 2)

Preface 补题 A~D都能秒出,E没看出性质被薄纱了,F感觉是个丁真题随便讨论下就过了 后面看了下F的标算是个倍增,感觉Tutorial对性质挖掘的还不够的说 A. Garland SB题,设出现次数最多的颜色个数为$cm$,若$cm\le 2$则答案为$4$;若$cm=3$则答案为$6$,若 ......
Educational Codeforces Round Rated 145

CodeForces-858#C 题解

正文 ♦最坏时间复杂度:$\mathcal{O}(\lvert S\rvert)$ 本题十分简单,但请注意两个条件要同时满足。 因为要求分割的次数越少越好,所以只要连续的辅音字母长度不大于 2 就不需要分割。 由于辅音字母太多,只需要标记元音字母即可。 #include<iostream> #inc ......
题解 CodeForces 858

Codeforces Round 854 补题总结

Codeforces Round 854 补题总结 前言 昨天做这套题很不顺,今天补完题大概总结一下。 总结 Recent Actions 按题意模拟即可,考虑到前 $n$ 个数一定始终在后 $m$ 个数的前面,所以说当当前队列中如果没有出现 $x$ 而在第 $i$ 轮放进了 $x$,那么当前在队首 ......
Codeforces Round 854

Codeforces Round 868 Div 2

A. A-characteristic (CF 1823 A) 题目大意 要求构造一个仅包含$1$和 $-1$的长度为 $n$的数组 $a$,使得存在 $k$个下标对 $(i, j), i < j$满足 $a_i \times a_j = 1$。 解题思路 当有$x$个 $1$, $y$个 $-1$ ......
Codeforces Round 868 Div

Codeforces Round 868 (Div. 2)

Preface 恭迎废物hl666终于回到了他忠诚的蓝名之位 本来这场25min切完前三题而且没挂的时候感觉状态不错的,然后D被自己的一个假做法坑了1h 最后ztc想出了大概的构造方法后已经来不及写了,一些细节没考虑好直接爆炸 本来当时就有弃D开E的想法的,但可以E的题意在公告出来之前就已经读错了, ......
Codeforces Round 868 Div

Codeforces Round 868 (Div. 2) A-E题解

比赛地址 这把真不在状态,麻了,看来还得再练 A. A-characteristic 题意:给出n和k,要求构造只含1和-1数组a,存在k对(i,j)(i≠j),有a[i]*a[j]=1 Solution 令构造的数组有x个1和y个-1,那么其对于答案的贡献有 $$ x*(x-1)/2+y*(y-1 ......
题解 Codeforces Round 868 A-E

BigDecimal的setScale常用方法(ROUND_UP、ROUND_DOWN、ROUND_HALF_UP、ROUND_HALF_DOWN)

BigDecimal的setScale四大常用方法总结 // 设置小数点后第三位数字一大一小观察效果BigDecimal num = new BigDecimal("3.3235667");BigDecimal numOne = new BigDecimal("3.3275667"); 1、ROUN ......

Codeforces Round 867 (Div. 3)(A~D)

A. TubeTube Feed 题意 给定时间 $t$ ,每个视频有一个价值 $b_i$,观看一个视频需要 $a_i$ 秒,跳过一个视频需要花费$1s$,求能观看完的价值最大的视频编号 思路 从前到后遍历即可,当 $a_i$ 小于 $t$,并且 $b_i$ 比当前价值 $val$ 大时,更新答案 ......
Codeforces Round 867 Div

Codeforces Round 867 (Div. 3)

Codeforces Round 867 (Div. 3) A - TubeTube Feed #include<bits/stdc++.h> using namespace std; typedef pair<int,int>PII; typedef pair<string,int>PSI; co ......
Codeforces Round 867 Div