题解p9580 round game

# Codeforces Round 887 E Ina of the Mountain(反悔贪心)

~~被这个题折磨了好久,决定写一篇题解~~ 先考虑没有这个$k$的限制的情况,等价于对原来的$a_i$序列的差分数组$b_i$,每次找到两个位置$1\le x 0$的位置进行$-1$的操作,后面对应的$+1$可以放在$b_ic[i]$,那么$c[i]$减去$k$对答案的贡献就是$0$,因为$d[i] ......
Codeforces Mountain Round 887 Ina

题解 [NOIP2018 提高组] 赛道修建

[题目链接](https://www.luogu.com.cn/problem/P5021) 挺综合的一道题目。 询问最小值最大,考虑二分最小值,二分上下界是 $[最小边权,树的直径]$,但是为了方便我们直接设为 $[1,5\times 10^8]$ 即可。 考虑如何 $check$,可以采用类似树 ......
题解 赛道 NOIP 2018

[题解] CF1328E Tree Queries

# CF1328E Tree Queries ## 题意 给定一棵以 $1$ 为根节点的有根树。 现在有 $q$ 次询问,每次询问给定 $m$ 个节点,问是否存在一条从根节点开始的链,使得每个节点到这条链的距离不超过 $1$ 。 ## 思路 我们首先可以给出一个结论:如果节点 $v$ 与一条链的距离 ......
题解 Queries 1328E 1328 Tree

BZOJ3732 Network 题解 Kruskal重构树入门题

题目链接:[https://hydro.ac/d/bzoj/p/3732](https://hydro.ac/d/bzoj/p/3732) 题目大意: 给定一个图,每次询问两个点 $u$ 和 $v$,在 $u$ 到 $v$ 的所有路径中找一条路径,且这条路径上的所有边的边权最大值最小。 解题思路: ......
题解 Network Kruskal BZOJ 3732

Codeforces Round 247 (Div. 2) C(线性DP、树形结构)

[C. k-Tree](https://codeforces.com/contest/431/problem/C "C. k-Tree") > 题意:给定一颗 \$ k \$ 叉树, 每个节点和其子节点的连边的权值分别为 \$ 1, 2, \cdot\cdot\cdot, k \$, 问从根节点开始 ......
树形 线性 Codeforces 结构 Round

CF1835 题解

# CF1835 题解 ### A 考虑到 $a,b,c > 3$ 的最多只有 $5$ 个,可以直接循环枚举 $A$ 。首先将 $B$ 取到最小值,然后判断 $C$ 是否达到了最小值,如果没有就将 $B$ 和 $C$ 同时补齐。此时特判如果 $C$ 大于上限(就是 $\geq 10^{c}$ ),就 ......
题解 1835 CF

9.6 CF1830 题解

# 9.6 CF1830 题解 ## A. Copil Copac Draws Trees [链接](https://www.luogu.com.cn/problem/CF1830A) 真弱智题不用讲 ## B. The BOSS Can Count Pairs ### 题意 每组数据给你一个 $n ......
题解 1830 9.6 CF

【题解】CF2600DP 选练(23.9.5-23.9.6)

低情商:感觉是比较套路的 高情商:十分 educational!!! ## CF258D Little Elephant and Broken Sorting ### 题目描述: 有一个 $[1,n]$ 的排列 $a$,会进行 $m$ 次操作,操作为交换 $(a_i,a_j)$。每次操作都有 $50 ......
题解 2600 23 CF DP

驯龙高手 题解

# 驯龙高手 题解 原题题目不是这个但是我实在看不懂他起的这个题目是什么含义所以就重新起了。题目里的主角的名字我也换成了一个朋友的设定名字。 ## 题目描述: 咪唑有 $n$ 条龙 ,第 $i$ 条龙的力量值为 $x_i$。咪唑想与这些龙交朋友。 但是龙很好斗,如果咪唑交上的朋友中,有两条龙力量值不 ......
题解 高手

Codeforces Round #887 (Div. 2) A-D

[比赛链接](https://codeforces.com/contest/1853) # A ## 代码 ```c++ #include using namespace std; using ll = long long; int a[507]; bool solve() { int n; cin ......
Codeforces Round 887 A-D Div

Educational Codeforces Round 120

# C. Set or Decrease 可以得到两个规律 - 修改操作一定是把较大的数变成最小的数更优 - 减一对谁操作都不影响结果 根据以上两个规律有可以总结出最优操作策略 - 对最小值先做若干次减法 - 把最大的若干个数变成最小值 已知策略后,我们发现因为值域很大,所以不能枚举最小值减的次数, ......
Educational Codeforces Round 120

题解:【ARC032C】 仕事計画

[题目链接](https://www.luogu.com.cn/problem/AT_arc032_3) 只和区间相对位置有关,先离散化。时间点上倒序贪心,设 $f_i$ 表示第 $i$ 个时间点最多能选几个区间,$g_i$ 表示在最大 $f_i$ 的前提下转移过来最小的字典序标号,可以顺便记录前驱 ......
题解 032C ARC 032

Educational Codeforces Round 138 (Rated for Div. 2) B. Death's Blessing

这是一个电脑游戏,$n$ 个怪物排成一行,第 $i$ 个怪物的血量为 $a_i$ 并且它的亡语强度为 $b_i$ 。规则是: * 玩家每秒可以削减一只怪物的一点血量。 * 第 $i$ 只怪物死亡后会释放亡语,它两侧的怪物血量会得到 $b_i$ 的增幅血量。边界上的怪物只能对它的邻居进行亡语增幅。 * ......
Educational Codeforces Blessing Death Round

Codeforces Round 406 (Div. 2) D. Legacy 线段树优化建图

[传送门](https://codeforces.com/problemset/problem/786/B) 题目大意: **给定n个点,m个操作,和起点s。其中n 和 q 大于等于1小于等于1e5, s大于等于1小于等于n** **其中m个操作有三种情况:** 1.输入1 u v val 表示从u ......
线段 Codeforces Legacy Round 406

洛谷P3038 [USACO11DEC] Grass Planting G 题解 树链剖分

题目链接:[https://www.luogu.com.cn/problem/P3038](https://www.luogu.com.cn/problem/P3038) 题目大意: 一棵树维护两种操作: 1. 一条路径上每条边边权 $+1$; 2. 查询路径上的边权和。 解题思路: 树链剖分模板题 ......
题解 Planting P3038 Grass USACO

P2292 [HNOI2004] L 语言 题解 AC自动机 + 状态压缩 + dp

题目链接:[https://www.luogu.com.cn/problem/P2292](https://www.luogu.com.cn/problem/P2292) 题目大意: 给定 $n(\le 20)$ 个模式串 $s_i(|s_i| \le 20)$,有 $m(\le 50)$ 次询问, ......
自动机 题解 状态 语言 P2292

Codeforces Round 836 (Div. 2) B. XOR = Average

给一个正整数 $n$ ,找到一个序列 $a_1, a_2, \cdots, a_n$ 满足 $$ \bigoplus_{i=1}^{n} a_i = \frac{\sum_{i=1}^{n} a_i}{n} $$ 。 一个原始的问题: $\bigoplus_{i=1}^{n}a_i=\sum_{i= ......
Codeforces Average Round 836 Div

Educational Codeforces Round 119

# B. Triangles on a Rectangle 因为保证了每一个边上都有点,所以相当于三角形的高已经确定了。最大化底即可。 ```cpp #include using namespace std; #define int long long const int inf = 1e15; u ......
Educational Codeforces Round 119

Memory题解(线段树优化DP)

[传送门](https://www.luogu.com.cn/problem/P9594) 简要题意: 给定 $m$ 条线段,每条线段由四个正整数参数 $l_i,r_i,c_i,w_i$ 描述,其中 $l_i,r_i$ 是这条线段的端点,$c_i$ 是这条线段的种类,$w_i$ 是这条线段的权值。 ......
线段 题解 Memory

CF1860D 题解

在 Codeforces 上看到了这题的 $\mathcal{O}(n ^ 4 / \omega)$ 做法,和大家分享一下。 [原版 Solution 链接](https://codeforces.com/blog/entry/119504?#comment-1060285) 记 $d$ 为原字符串 ......
题解 1860D 1860 CF

【题解】CF1852D Miriany and Matchstick

考虑 `dp`,设 $f_{i,0/1}$ 表示考虑到前 $i$ 位,且第 $i$ 位填入 A/B 可能的答案集合,显然地朴素转移时间复杂度 $O(n^2)$。 试分析 `dp` 性质,观察发现所有 `dp` 中得到的集合为区间内抠去至多一个点。 > > 证明 > 我们首先来观察转移过程是怎样的。第 ......
题解 Matchstick Miriany 1852D 1852

Codeforces Global Round 24 B. Doremy's Perfect Math Class

给一个元素个数为 $n$ 的正整数集合 $S$ ,可以做以下操作任意次: * 选择 $S$ 中的两个元素 $x$ $y$ 满足 $x > y$ 且 $x - y$ 不在集合内。 * 加入 $x - y$ 到集合。 经过若干次操作后,集合中最多能存在多少元素。 性质一:两个数 $x$ $y$ 辗转相减 ......
Codeforces Perfect Global Doremy Class

Codeforces Round 842 (Div. 2) B. Quick Sort

给一个长为 $n$ 的排列 $p$ 和一个正整数 $k, (k \leq n)$ 。在一步操作中,可以: * 选择 $k$ 个不同的元素 $p_{i_1}, p_{i_2}, \cdots, p_{i_k}$ 。 * 将他们移除然后排序,并拼接到剩余数组末尾 找到最小的操作数使得整个排列为增序。 典 ......
Codeforces Round Quick Sort 842

$9.6$ 短学期题解

## $a$ ```cpp int a[N]; void solve(){ int n=read(); for(int i=1;i=5?"Penta Kill":"Shut Down"); //puts(ans>0?"Yes":"No"); } ``` ## $b$ 想了很久,感觉没有不用最短路算法 ......
题解 学期 9.6

Codeforces Round 837 (Div. 2) A. Hossam and Combinatorics

给一个长为 $n$ 的数组 $a$ ,统计出所有二元组 $(a_i, a_j)$ 数量,满足以下条件: * $1 \leq j view ``` #include void solve() { int n; std::cin >> n; std::vector a(n); for (int i = ......
Combinatorics Codeforces Hossam Round 837

Codeforces Round 843 (Div. 2) A2. Gardener and the Capybaras (hard version)

有三个字符串 $s_1, s_2, s_3$ ,每个字符串只有 $a, b$ 组成。三个字符串顺序连接在了一起。满足以下条件之一: * $s1 \leq s_2, s_3\leq s_2$ * $s1 \geq s_2, s_3\geq s_2$ 以上为字典序比较。 给出连接的三个字符串,输出一组可 ......
Codeforces Capybaras Gardener version Round

Codeforces Round 869 (Div. 2) B. Indivisible

给一个正整数 $n$ ,问能否构造出任意一个一个长为 $n$ 的排列满足 $\forall l,r,\ 1 \leq l view ``` #include void solve() { int n;std::cin >> n; if (n == 1) std::cout > _; while (_ ......
Indivisible Codeforces Round 869 Div

Codeforces Round 873 (Div. 2) B. Permutation Swap

给一个无序排列 $p_1, p_2, \cdots, p_n$ 。为了排序这个排列,选一个常数 $k(k \geq 1)$ 并且在排列上做一些操作。 * 一次操作可以选择 $i, j, (1 \leq j view ``` #include typedef long long ll; ll gcd( ......
Permutation Codeforces Round Swap 873

Codeforces Round 861 (Div. 2) A. Lucky Numbers

定义一个数的幸运值是这个数的数位的最大值减去最小值,如 $luckiness_{769} = 9 - 6 = 3$ 。给出 $l$ $r$ ,求 $[l, r]$ 中最幸运的数,若最幸运的数有多个,任意一个为答案。 考虑拆分数位,然后枚举。以 $O(d)$ 的复杂度计算幸运值。则线性扫一遍的复杂度为 ......
Codeforces Numbers Round Lucky 861

Codeforces Round 859 (Div. 4) D. Odd Queries

给一个长为 $n$ 的数组 $a$ 。回到 $q$ 个询问。 * 让 $a_l, a_{l + 1}, \cdots, a_r$ 变为 $k$ ,$\sum_{i = 1}^r a_i$ 是否为奇数。 每个询问独立。 显然每个学问独立可以使用前缀和计算区间和,单个询问中 $pre_{1, l - 1 ......
Codeforces Queries Round 859 Div