codeforces corollary 1364d ehab
Codeforces Round 867 (Div. 3)
A. TubeTube Feed 分析: 从所有a[i]+i-1<=t的选择种取个max即可 code: #include <bits/stdc++.h> using namespace std; const int N = 55; int a[N], b[N]; int main() { std: ......
Codeforces 908H - New Year and Boolean Bridges(FWT)
一道挺有意思的题,并且感觉有点诈骗的成分在内( 首先考虑分析三种字符的性质: 显然任意两点 $i,j$ 之间要么 $i$ 可以到达 $j$,要么 $j$ 可以到达 $i$,否则 A O X 三个一个都不能满足。 如果两点间的状态是 A,那么这两点必须在同一强连通分量内。 如果两点间的状态是 X,那么 ......
4.[1201D - Treasure Hunting](https://codeforces.com/problemset/problem/1201/D)
4.1201D - Treasure Hunting 题目意思: 在一个n*m的地图上面,左下角的坐标是(1,1),最开始你位于左下角,一秒钟你可以进行往左或者往右的操作,你只能在一些特殊的列上面进行往上移动的操作,你不可以往下移动。现在告诉你k个宝藏的坐标信息以及哪些列是允许往上的,问最后至少要几 ......
Codeforces Round 869 (Div. 2) A-D题解
比赛地址 A. Politics 题意:有n个人对m个决案进行投票,对于每一个决案如果票数相同则所有人都离场,反之票数少的一方离场,现在提前知道了每个人的意见,让一些人参与投票,在保证第一个人不离场的情况下最终剩余人数最多是多少 Solution 把和第一个意见不同的给去掉就行了 void solv ......
Codeforces 914H - Ember and Storm's Tree Game(计数)
我这个低能儿怎么这个题调了这么久啊,废了/dk 非常烦的做法,不过也可以看看,代码也不算太难写( 首先注意到很诈骗的一件事情是,只要这个序列 $a$ 是单峰的或者单谷的(当然,递增递减序列也算在内),都恰有两种方式选择 $(i,op)$ 使得操作完后的序列的单调的,并且显然选树的 Ember 有必胜 ......
Chemistry Experiment Codeforces Round 247 (Div. 2) 线段树动态开点,二分
第一次写的时候还不会线段树的动态开点,写了一个是线段树但是是$O(N^2)$的写法,现在用动态开点武装了自己,会了正解$O(qlog n^2)$。首先建立一个权值线段树,但这里的权值很大,通过动态开点去建树来节省空间,对于两种操作: 操作1,常见的动态开点的单点修改 操作2,二分答案,然后在线段树上 ......
Codeforces 280C Game on Tree
设 $p_i$ 为 $i$ 涂色或不涂色,$1$ 为涂,$0$ 为不涂,答案即为 $E[\sum_{i = 1}^n p_i]$ 然后转化一下柿子:$\sum_{i=1}^nE[p_i]$,这就很好求了,单独求每个点 $E[p_i]$ 的值就行了 考虑对于 $u$ 点,$p_u = 1$,即能被涂需 ......
题解 CF1325E【Ehab's REAL Number Theory Problem】
problem 给一些数,每个的因数个数不超过 7,求最少选出多少个,使得乘积为完全平方。无解输出 −1。$n=10^5,V=10^6$。 solution 如果一个数有三个不同的质因子,那么它至少有 8 个约数;如果一个数有平方因子,我们可以除掉。 所以任何数都可以写成下面三种形式:($p,q$ ......
Educational Codeforces Round 147 (Rated for Div. 2) A~E 题解
A Link。 模拟,代码。 B Link。 模拟,代码。 C Link。 我们设 $c$ 为最后相同的字符。 性质:我们一定不会删除字符 $c$。 因此以 $c$ 为最后字符的操作次数就是不包含字符 $c$ 的极大段的最小操作次数的最大值。 对于一个长度为 $l(l\ge 1)$ 的段,它的最小操 ......
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 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 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 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 Gym 103439D - LIS Counting(猜结论+状压)
一道需要一些猜结论技巧的中档题。 首先突破口在于排列长度恰好等于不是额外输入的某个数 $k$ 而是 LDS 与 LIS 的乘积,这显然启示我们去找一些性质。根据 dilworth 定理,最长反链等于最小链覆盖,故 LIS 的长度,就是最少需要的递减数列的个数使得每个元素被覆盖至少一次,而每个递减数列 ......
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 (Div. 2)
Preface 一把回到紫名还是很舒服的,D题手比较稳猜了点性质水过 主要还是C脑抽了想了挺久才看出来是个丁真题,不然最后过了D之后30min可以看看E的 由于要写学校的图论专题所以接下来一段时间的CF补题计划就要先停一停了 A. Politics 傻逼题,当某个人的串和第一个人有任意一个位置不同时 ......
Codeforces Round 823 (Div. 2)C
C. Minimum Notation 思路:我们可以进行的操作时将一个位置的数删除然后在任意位置处添加一个比当前数大1并且小于9的数,所以我们的操作只会让一个数变大,我们统计一个最大值的后缀,贪心的考虑如果当前数的后面有比他小的数的话,我们就需要让这个小的数往前走才能使字典序变小,如果当前值小于< ......
Codeforces Round 867 (Div. 3)
题目链接 E 核心思路 首先我们先考虑什么情况下是肯定不可以交换成功的: aaabc.比如像这种a的个数超过了我们整个字符串一半的长度就肯定是不可以的。然后剩下的情况肯定都是可以的。 然后考虑怎么样可以使得交换次数最小呢: aa aa bb cc dd ff。 我们发现这组的话我们只需要交换两次,也 ......
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 Round 869 (Div.1 & Div.2) 题解
2A. Politics 因为编号为 $1$ 的人一定不会离开,那么最后留下的人一定要和编号为 $1$ 的人的所有参数都一致,所以计数即可。 #include <bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> #include <ext ......
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 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 855 (Div. 3)--E
题意: 给定一个k,可以任意次交换满足 | i - j | = k 或 | i - j |=k+1 的两个位置的元素 很容易发现有区间内的字符是可以任意交换的,但是一个个字符考虑太混乱了(就是这样子把脑袋搞晕了),从左考虑那么(1,n - k)这个区间可以任意交换,从右考虑(k + 1, n)这个区 ......
Codeforces Round 855 (Div. 3)--D
题意: 给定一个字符串,删除其中连续两个字符,问有多少种不同字符串的情况 #include<bits/stdc++.h> using namespace std; typedef long long ll; #define endl "\n" //开始时假设每个点都对答案有贡献,考虑什么时候没有贡献 ......
Codeforces 1804H - Code Lock(状压 dp)
对于一种排列方案,答案显然等于相邻字符在环上对应的劣弧长度之和。 然后其实你可能会想到很多状压 / 折半搜索方法,包括但不限于枚举一半的信息然后折半搜后一半,但稍加思考会发现这些方案都避不开记录元素之间的相对顺序,而但凡涉及到这一点,复杂度都是阶乘起步。因此我们只能另辟蹊径。 考虑 $k$ 是偶数的 ......
Codeforces 1799H - Tree Cutting(树形 dp)
思考的时候一直卡在不会在低于 $O(n)$ 的时间内储存一个连通块的 $siz$ 有关的信息,看了洛谷题解之后才发现我真是个小丑。 树形 DP。对于一条我们需要操作的边 $(i,fa_i)$,我们将其分为保留子树和删除子树两种类型,对于删除子树,我们在判定其是否合法时候改为判定删除的连通块大小是否为 ......
Codeforces 1815E - Bosco and Particle
首先,对于每个 $s_i$,我们只用保留其最小周期,证明显然。 同时以多个光电门为研究对象显然状态数过多,不方便统计。考虑一下连接不同光电门的纽带是什么:显然是相邻光电门之间的空隙。对于每个光电门 $i$,如果我们只保留 $i$ 作为唯一的光电门,那么显然有 $0\to 1$ 和 $1\to 2$ ......
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 145 (Rated for Div. 2)
Preface 补题 A~D都能秒出,E没看出性质被薄纱了,F感觉是个丁真题随便讨论下就过了 后面看了下F的标算是个倍增,感觉Tutorial对性质挖掘的还不够的说 A. Garland SB题,设出现次数最多的颜色个数为$cm$,若$cm\le 2$则答案为$4$;若$cm=3$则答案为$6$,若 ......
CodeForces-858#C 题解
正文 ♦最坏时间复杂度:$\mathcal{O}(\lvert S\rvert)$ 本题十分简单,但请注意两个条件要同时满足。 因为要求分割的次数越少越好,所以只要连续的辅音字母长度不大于 2 就不需要分割。 由于辅音字母太多,只需要标记元音字母即可。 #include<iostream> #inc ......