codeforces 1830e bully sort

sort快排

#include<bits/stdc++.h> using namespace std; int n; long long a[100010]; bool b,px[100010]; void jh(int x,int y) { int az=a[y]; a[y]=a[x]; a[x]=az; } ......
sort

Codeforces 914H - Ember and Storm's Tree Game(计数)

我这个低能儿怎么这个题调了这么久啊,废了/dk 非常烦的做法,不过也可以看看,代码也不算太难写( 首先注意到很诈骗的一件事情是,只要这个序列 $a$ 是单峰的或者单谷的(当然,递增递减序列也算在内),都恰有两种方式选择 $(i,op)$ 使得操作完后的序列的单调的,并且显然选树的 Ember 有必胜 ......
Codeforces Ember Storm 914H Game

Chemistry Experiment Codeforces Round 247 (Div. 2) 线段树动态开点,二分

第一次写的时候还不会线段树的动态开点,写了一个是线段树但是是$O(N^2)$的写法,现在用动态开点武装了自己,会了正解$O(qlog n^2)$。首先建立一个权值线段树,但这里的权值很大,通过动态开点去建树来节省空间,对于两种操作: 操作1,常见的动态开点的单点修改 操作2,二分答案,然后在线段树上 ......

Linux shell command ls sort by date All In One

Linux shell command ls sort by date All In One ls 按时间排序,最新的排在最前面 $ ls -t $ ls --time # reverse $ ls -tr ......
command Linux shell date sort

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$,即能被涂需 ......
Codeforces 280C Game Tree 280

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

[Javascript] Avoid mutation, Array.prototype.toSorted() vs sort()

sort(), mutates the original array, and return the reference to original array and sorted. The toSorted() method of Array instances is the copying ver ......
Javascript prototype mutation toSorted Avoid

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

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

B. Sort with Step

题意: 给定一个长度为n的数组,任意两个数如果满足i-j的绝对值等于k则可以互相交换,若不能通过此操作实现数组排序,则需要使用次数来强制交换,次数小于等于1输出次数,否则输出-1. 分析: 最优情况下,找出需要操作的数的数量然后两两交换是次数最少的。 代码: ......
Sort with Step

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

Python 希尔排序(Shell Sort)原理以及应用

##希尔排序的原理: 希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序; 随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算法便终止。 希尔排序的原理是将待排序的序列按照一定间隔分成若干个子序列,对每个子序列使用插入排序进行排序,缩小间隔后再次进 ......
原理 Python Shell Sort

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