题解1071 cf

P1830题解

### 思路: - 利用桶存储轰炸区域,双重循环。 - 在存储轰炸区域时将次数刷新,也就是`pos[j][k]=i;`。 下面是核心代码: ```cpp for(int i=1;i>x1>>y1>>x2>>y2; for(int j=x1;j<=x2;j++) { for(int k=y1;k<=y ......
题解 P1830 1830

题解 P8816 [CSP-J 2022] 上升点列

## [P8816 [CSP-J 2022] 上升点列](https://www.luogu.com.cn/problem/P8816#submit "P8816 [CSP-J 2022] 上升点列") ## 题目大意 给定 $n$ 个点,你可以任意添加 $k$ 个点,从中选择若干点使得序列中任意相 ......
题解 P8816 CSP-J 8816 2022

CF1839D

[原题](https://codeforces.com/contest/1839/problem/D) [翻译](https://www.luogu.com.cn/problem/CF1839D) 发现我们可以固定里面一段上升子序列不动,我们称这些子序列的点为“选定点” 我们不妨能发现答案为非选定点 ......
1839D 1839 CF

CF1820 & 1819 题解

## Div2 A 答案取决于 `_` 连续段长度,有一些细节,比如什么时候答案要加一减一,以及字符串是单独的 `^`。 ## Div2 B 首先先把全 $1$ 串给特判掉。 记将字符串视为首位相接的环的时,最大 $1$ 连续段长度为 $x$,答案为 ${\lfloor {x+1 \over 2} ......
题解 1820 1819 amp CF

CF1681E Labyrinth Adventures 题解

## 题意 有一个 $n\times n$ 的方格图,坐标编号类似平面直角坐标系,左下角为 $(1, 1)$。 这个方格图被分成了 $n$ 层,左下角 $(1, 1)$ 为第一层,随后每层都向外拓展一圈,如下图就是 $n=5$ 的时候的情况: ![](https://espresso.codefor ......
题解 Adventures Labyrinth 1681E 1681

牛客七夕比赛 题解

标准的算法竞赛题有下面几个,写这篇博客主要是这个 M 很有意思,一直没绕过来这个弯 如果你有更牛逼的构造方法欢迎交流指导。 # B > 构造边长为 $n$ 的矩阵,使得每个 $2\times 2$ 的子矩形的权值和的极差最小 两个指针 L=1,R=$n^2$ 。将网格黑白染色后按照顺序遍历,黑色填 ......
题解

CF1838E

[原题](https://codeforces.com/contest/1838/problem/E) [翻译](https://www.luogu.com.cn/problem/CF1838E) 容易想到$O(nm)$的做法 $dp_{i,j}$表示考虑前$i$个$b$序列,已经匹配了前$j$个$ ......
1838E 1838 CF

CF949A Zebras

## 思路 我们可以先模拟一下: 如果发现该位为 $1$,那么只能将这一位放在目前末位是 $0$ 的子序列。如果不存在,则无解; 如果发现该为为 $0$,那么要么将这一位放在目前末位是 $1$ 的子序列,要么新开一个子序列,并放在首位。 如果最后存在子序列的末位是 $1$ 在该种分法不合理,因为没有 ......
Zebras 949A 949 CF

CF1263D Secret Passwords

## 思路 题目告诉我们有相同字母的密码就是等效的,等效性可以传递,所以我们可以考虑把所有等效的密码放在一起。 自然而然地想到了并查集,统计每个出现过某个字母的密码,然后一个字母一个字母的去合并等效密码。 接下来思考如何统计答案,如果合并完了再去统计,自然就很麻烦,但是我们可以边合并边统计,发现如果 ......
Passwords Secret 1263D 1263 CF

CF1335E1 Three Blocks Palindrome (easy version)

## 思路 发现一个进阶回文序列仅包含三个部分:$x$ 个连续的 $a$,$y$ 个连续的 $b$,$x$ 个连续的 $a$。 对于一个 $a$,我们一定会取最外面的两个 $a$,如果不取,则答案一定不小或不变,所以我们枚举到 $a$ 的时候,一定是确定了最外围的两个 $a$ 的位置。 接下来再枚举 ......
Palindrome version Blocks 1335E Three

LeetCode 算法题解之 26 进制转换 All In One

LeetCode 算法题解之 26 进制转换 All In One 171. Excel Sheet Column Number 171. Excel 工作表列号 168. Excel Sheet Column Title 168. Excel 工作表列头 ......
题解 进制 算法 LeetCode All

CF670E Correct Bracket Sequence Editor

## 思路 发现此题除了模拟没有好的方法,所以考虑如何模拟。 先考虑删除操作,如果在删除的时候再去找要删除那些的话,就会使时间复杂度变高,所以考虑先预处理出每个括号对应的位置。如果按照操作删除括号,那么时间复杂度也是非常吓人的。所以我们考虑标记被删除的括号。 再考虑移动操作,如果移动的下一个位置是被 ......
Sequence Bracket Correct Editor 670E

「题解」Codeforces 1063F String Journey

先 reverse 一下。 不难看出选出的字符串长度为 $1,2,\cdots,k$ 一定不劣,仅考虑这种形式的。 然后考虑一手 dp,设 $f_{i}$ 表示最后一个子串是 $i$ 为结尾,最长长度是多少。 这样转移就是 $f_i\gets f_{j}+1,iff\ s[j-f_j+1,j]\te ......
题解 Codeforces Journey String 1063F

CF1221G 题解

特判 $m=0$。然后考虑做一个容斥。令 $F(E)\;(E\subseteq\{0,1,2\})$ 表示边权集合 $\subseteq E$(没有不在 $E$ 内的数字)的方案数。那么答案为 $$F(\{0,1,2\})-F(\{0,1\})-F(\{1,2\})-F(\{0,2\})+F(\{0 ......
题解 1221G 1221 CF

CF757G 题解

[Lnk](https://www.luogu.com.cn/problem/CF757G)。这是一个 dfs 序 + 主席树的乱搞做法。 首先把树上距离拆开,令 $\operatorname{dis}(u)$ 表示 $u$ 到根的路径长度: $$\left(\sum_{i=l}^r \operat ......
题解 757G 757 CF

[CEOI2011] Matching 题解

## [CEOI2011] Matching 题解 ### 题外话: 看了其他人题解后作为初学 $kmp$ 的我非常蒙,因为对这个算法的核心掌握不太好,不知道怎么维护动态的序列,因此写下此题解共享经验,建议只会打模板的看看。 ### 参考资料: https://www.cnblogs.com/fus ......
题解 Matching CEOI 2011

【题解】洛谷 P1002 [NOIP2002 普及组] 过河卒

原题链接 解题思路 这是一道经典的动态规划题目。 如果尝试使用深度优先搜索(dfs)或广度优先搜索(bfs)做就会获得 TLE (注意数据范围)。于是我们想到了更为高级的动态规划(Dynamic Programming, dp)。 简略介绍动态规划算法的核心思想:把原问题分解为相对简单的子问题的方式 ......
题解 P1002 1002 NOIP 2002

CF1749D Counting Arrays

> 给定一个数组 $a$,同时给定一个操作:选取一个数字 $i$,如果 $\gcd(a_i,i) = 1$,我们就可以将**当前**的第 $i$ 位上的数字 $a_i$ 移除掉,而后面的数字会以此补上空缺。 > > 定义一个序列 $b$ 为一个“移除序列”,当且仅当我们可以通过依次选取 $b_1$ ......
Counting Arrays 1749D 1749 CF

P9570 Glaciaxion 题解

[原题](https://www.luogu.com.cn/problem/P9570) [更好的阅读体验](https://www.luogu.com.cn/blog/356277/p9570-glaciaxion-ti-xie) 直接遍历字符串,如果当前字符为 `N` ,就判断编号 $1 \si ......
题解 Glaciaxion P9570 9570

P1371 NOI元丹 题解

[原题](https://www.luogu.com.cn/problem/P1371) 题目要求的很简单,就是问一个任意加了 $ N,O,I $ 三个字母中的任意一个打的字符串里面能组成几个 $ NOI $ 。 先考虑不加字母的情况,直接枚举每一个 $ O $ 的前后 $ N $ 和 $ I $ ......
题解 P1371 1371 NOI

P1366 有序表的合并 题解

题目给出两个数列 $a$,$b$,均按不降序排序,要求 $a$ 数列中的数在 $b$ 数列中出现多少次。 刚开始是想用一个数组来记录 $b$ 数列中的数出现的次数,然后再枚举 $a$ 数列中的每个数是否在 $b$ 数列中出现来累计答案,但是后面看到 $ 1 \leq n, m \leq 10^7 $ ......
题解 P1366 1366

CF1838C

[原题](https://codeforces.com/contest/1838/problem/C) [翻译](https://www.luogu.com.cn/problem/CF1838C) CF题真巧妙,~~虽然但是我是笨蛋想不出来/kk~~ 先说一下我的做法 如果$n$和$m$中有一个不是 ......
1838C 1838 CF

P8772 [蓝桥杯 2022 省 A] 求和 题解

~~蒟蒻第一次发题解qwq~~ $$ S=a_1 \times a_2+a_1 \times a_3+a1 \times a_n+a_2 \times a_3+···+a_n-2 \times a_n-1+a_n-1 \times a_n $$ 从样例来看 4 1 3 6 9 这道题就是要求 $$ ......
蓝桥 题解 P8772 8772 2022

CF776D The Door Problem

## 思路 我们已经得知每盏灯的初始状态和哪两个开关控制它。 首先分类讨论: 如果最开始这盏灯是开着的,那么这两个开关应该做出同样的操作,即要么全按,要么全不按。 如果最开始这盏灯是关着的,那么这两个开关应该做出不同的操作,即一个按一个不按。 转化一个思路,就变成了有 $m$ 个数,其中有 $n$ ......
Problem 776D Door 776 The

ABC314EX 题解

模拟退火的题解。 题目的难点在于如何计算点到所有线段的距离。 我们可以通过求线段的直线解析式,然后计算与其垂直的直线的斜率,将随机出来的点带入求得直线解析式,然后求两直线交点,判断是否在线段上进行分讨即可,但是我可能写挂了,所以改成用的向量。 ![](https://cdn.luogu.com.cn ......
题解 ABC 314 EX

CF1342F Make It Ascending

# CF1342F Make It Ascending ## 题意 给予一个包含$n$个元素的数组$a$,你可以进行以下操作: - 选择两个不同的元素$a_i,a_j$($1 \le i,j \le n$,$i \ne j$) - 将$a_j$的值加上$a_i$,并移除$a$中的第$i$个元素。 求 ......
Ascending 1342F 1342 Make CF

YACS 2023年8月月赛 甲组 T3 金字塔分割 题解

看到这题,自然的想到 DP 啦! 如果设 $f_{i,j}$ 为到第 $i$ 个位置前面的都合法且最后一段和为 $j$ 是否可行,那么转移十分显然,但是状态会炸。 此时我们考虑在状态上进行优化来减少时间,把 $f_i$ 设为到第 $i$ 个位置分段数量最多的情况下且最后一段和最少的和,以及能分成几段 ......
甲组 题解 月月 金字塔 金字

[USACO JAN 2011]交通灯 题解

题意很清晰,直接跑 SPFA 求最短路。 只是我们在松弛操作时,需要注意从 $u$ 是否可以到达 $v$。 怎么判断呢? 请移步下面三个部分。 ## Part 1 先解释一下,下面点 $i$ 的信息分别为以下变量: + `color` 表示颜色, `1` 表示蓝色,`0` 表示紫色 + `num` ......
交通灯 题解 交通 USACO 2011

CF1818 & 1817 题解

## Div2 A 容易发现最后要存活下来一定要每次和 $1$ 号做出相同的选择,直接数就好了. ## Div2 B 容易发现当 $n$ 为奇数的时候无解。 考虑 $n$ 为偶数的情况怎么构造,有一种方案是在 $a_i=i$ 的基础上调整,交换一下 $a_{2i-1}$ 和 $a_{2i}$,证明考 ......
题解 1818 1817 amp CF

CF1838B

[原题](https://codeforces.com/contest/1838/problem/B) [翻译](https://www.luogu.com.cn/problem/CF1838B) 连B题都做不出来,NOIP大寄了 首先我们至少有两个排列$\{1\}$和$\{1,2,...,n\}$ ......
1838B 1838 CF