题解codeforces round 879

【题解】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

Codeforces Round 858 (Div. 2) B. Mex Master

给一个长为 $n$ 的数组 $a$ ,定义 $a$ 的 $score$ 为 $a_1+ a_2, a_2 + a_3, \cdots, a_{n - 1} + a_n$ 的 $MEX$ 。 找到 $a$ 的 最小 $score$ 如果 $a$ 可以被重排。$(0 \leq a_i \leq 2 \t ......
Codeforces Master Round 858 Div

Codeforces Round 856 (Div. 2) B. Not Dividing

给一个长为 $n$ 的正整数数组 $a$ ,在一步操作中,你可以选择任一个数并且 $add\ 1$ 。要求最多执行 $2n$ 步操作使 $a$ 满足 $\forall i, i \in[1, n - 1], a_{i} \nmid a_{i + 1}$ 。输出任一个在操作数限制内可以得到的合法数组。 ......
Codeforces Dividing Round 856 Div

* Codeforces Round 889 (Div. 2) B. Longest Divisors Interval

给一个正整数 $n$ ,找一段最长的 $[l, r]$ ,满足 $\forall i, i \in [l, r],\ s.t.\ i | n$ 。输出这一段区间的长度,即 $r - l + 1$ 。 这题是一个准结论题,需要一些知识点和观察的基础。 放在 $900$ 的位置是因为结论存在的区间太容易 ......
Codeforces Divisors Interval Longest Round

Codeforces Round 874 (Div. 3) B. Restore the Weather

给一个长为 $n$ 的数组 $a$ ,给一个长为 $n$ 的乱序数组 $b$ ,给一个正整数 $k$ 。要求重排 $b$ 使得 $\forall i, |a_i - b_i| \leq k$ 。输出其中一种 $b$ 的排列方式。 一个性质题。(div2 前几题很喜欢有序数组的经典性质) 总结一下有序 ......
Codeforces Restore Weather Round 874

Codeforces Round 868 (Div. 2) B. Sort with Step

给一个长为 $n$ 的排列(无序)$p$,为 $p_1, p_2, \cdots, p_n$ 。一个正整数 $k$ 。 允许执行任意次以下操作: * 选择两个数 $p_i$ $p_j$ 满足 $|i - j| = k$ ,并且 $swap(p_i, p_j)$ 。 允许最多执行一次特殊操作: * 选 ......
Codeforces Round Sort with Step

Codeforces Round 845 (Div. 2) and ByteRace 2023 B. Emordnilap

给一个长为 $n$ 的排列,对于它的每一个排列 $p$ ,复制一份并 $reverse$ 拼到原排列的后面得到 $a = \left [p, p_{reverse} \right ]$ 。 求 $p$ 的所有排列对应的 $a$ 的逆序对数之和,结果对 $1E9+7$ 取模。 **逆序对贡献**: * ......
Codeforces Emordnilap ByteRace Round 2023

* Codeforces Round 885 (Div. 2) A. Vika and Her Friends

给一个 $n \times m$ 的网格,每个格子对应一个坐标 $(a, b)$ 。如果存在一个各自的坐标为 $(c, d)$ 且满足 $|a - c| + |b - d| = 1$ ,则称 $(a, b)$ 与 $(c, d)$ 相邻。 给出 $k + 1$ 个点,初始坐标分别为 $(x_0, y ......
Codeforces Friends Round Vika 885