本文记录了从2023年4月开始的做题记录,难度以2000~2400分为主,主要格式为:
题号 题目类型 (一句话题意)
作为个人刷题的总结,同时如果能帮助到其他人也更好,如果需要找某些题型可以直接 Ctrl+F 在网页中查找
本博客的编写是陆续进行的,故格式不尽相同,见谅
随着做题的进行,本博客会不定期更新
30E KMP+manacher (给定字符串,将其划分为,其中,为奇回文串,可为空,最大化)
149E 后缀数组 (给定,每次询问是否存在使得)
715B 图论构造 (给定无向图,部分边权为0,给这些便赋一个正数使得到的最短路为)
802I 后缀数组 (
是
的
子
序
列
)
873F 后缀数组 (求,其中是的子串,某些位置不能作为统计出现次数的结尾)
1089C 交互 (给定无向图,猜一个点,每次告诉你与所猜点相邻的点,满足)
1153E 交互 (蛇)
1153F 期望 (随机条线段,求重叠大于等于层的长度的期望)
1513F 数据结构(二分) (给定,交换一对,最小化)
1607G 贪心 (给定,给每个总计减去,最小化)
1607H 贪心 (给定 ,对于每个 , 一共减去 ,求一种方案使得 最小, )
1617D2 交互 (猜测一个长度为 的01序列,每次查询 ,返回 中出现最多的数,即0/1,至多查询 次,输出 的个数以及其下标)
1629E 构造 (给定一个 的矩阵 , 表示与位置 相邻的 的异或和,求原矩阵 的异或和)
1631D 二分答案+双指针 (将序列划分为段,要求每段中介于的元素个数严格大于之外的元素,最小化,)
1631E 贪心 (给定序列初始都无色,每次选择,可将染色,求最多染色个数)
1632D 数学 (定义序列有趣当且仅当所有子段中的gcd都不等于子段的长度,对于给定序列,求其每个前缀需要修改多少个数使其有趣,)
1634D 交互 (次查询,找序列,中唯一的0,每次查询返回,回答时给出两个数有一个为0即可)
1634E 构造 (给定个长度为偶数的序列,将每个序列中元素平分到两个集合中,要求最终两个集合相等,给出构造方案)
1638D 构造+BFS (的方格染成指定颜色,刷子为,颜色可覆盖,给出一种染色方案不超过次)
1638E 数据结构 (序列初始颜色为,值为,三种操作:区间染色,指定颜色值增加,查询单点值)
1641B 构造 (给定数列,每次可在任意位置插入两个相等的数,要求最后序列可以划分为若干个漂亮的序列,漂亮的序列前一半和后一半完全相同,求是否可行及构造方法)
1641C set/数据结构 (个人两种信息,,中人全部健康,,中至少一人生病,,询问第个人生病情况or不确定,强制在线)
1647D 构造 (整除相关)
1684E 构造 (给定数列,可以任意修改个数,最大化)
1706D2 构造+贪心 (给定,求)
1728E 贪心+数论 (利用拓展欧几里得算方案,再求最大值)
1738E DP (给定数列划分为若干子段,使得字段和构成的新数列回文,求方案数)
1735E 构造+贪心 or 网络流 (数轴上有,表示与的距离但打乱顺序,给定,求)
1741G DP (图中有 个点 条边,有 个人, 个人没车,每个人可以带多个没车的人,都从 号点出发,只能捎在自己回家最短路上的人,问你最多多少个人得走回去, )
1748E DP计数 (给定子序列,所有子序列中最大值的下标相同,求个数)
1749E 构造+最短路 (给定地图上有若干障碍物,需放置最少障碍物使得不存在从第一行到第行的路径,放置障碍物需不能与其他障碍物有公共边,路径上的点必须有公共边)
1736D 构造 (01串选择一个子序列进行旋转后,可以划分为两个完全相等的子序列)
1761E 构造 (给定一张图,每次操作可选定一个点,将其连边状态取反,求最少操作次数及方案使得该图联通)
1763D 组合计数 ( 组数据,每组给定 ,求满足 的 bitonic 排列的个数,bitonic 排列是一个存在 , 单调增, 单调减, )
1764E DP(给定数列和,可选定一个排列,然后每次选择一个未染色数,满足或存在染色的满足且,然后把染色,问是否能使染色)
1766E DP(给定序列,求所有的价值和, )
1776G 构造
1777F 数据结构(给定序列 ,对任意 最大化 )
1783E 整除+数据结构 (求所有满足的,其中)
1773K 图论构造(个点的树,
第
个
点
的
度
数
)
1773A 构造 (构造一个排列满足,为一个排列)
1780E 数学 多组询问,给定,求
1787E 数值构造 (将划分为个集合,使得每个集合内元素异或和为)
1789F 字符串(给定一字符串 ,求其最长的满足如下性质的子序列长度:该子序列是由 个完全相同的字符串拼接而成的)
1794E 树+哈希 (给定一颗树,给定一个数列,给其中个数放一个,一个点是好的当且仅当每个点到它的距离就是那个点上放的数,求所有)
1795F 构造+树型DP (给定一棵树,个点,每个点依次移动到相邻位置,不能重叠,求最大总移动次数)
1797E 数学+数据结构 (给定一个序列,对区间,第一种是将区间内所有数变为最小操作数,每次操作为将一个数变为,该操作不对原序列产生影响)
1798E DP (给定一个数列,问最少修改多少次使之成为一个,即数列第一个是组数,每组第一个数是,接下来个数,其中可以为,)
1802F 图论 (给你 个点, 条边,每条边从 到 花费 元,初始在 有 元,每个点可以进行任意场表演,每场获得 元,求到达 点所需要的最小表演次数, )
1819C 构造 (给定一棵树,每次可以从一个点跳到与其树上距离不超过2的点,找一条回路)
1832D2 DP (给定,共执行次操作,第次操作是第选择该元素,加,问次操作后,多组询问)
1834E 数学? (求给定数列的所有子段LCM的MEX)
1840G1 交互 (次旋转,告诉你圆盘上的一个数,求改圆盘大小,圆盘上的数为一个排列)
1842C DP (,每次操作可以取走两相同元素之间的所有元素(包含自己),可执行任意次,最少剩下多少)
1842D 差分约束 (丁真和他的动物朋友们)
1845D 贪心 (依次加,可设定一个,使得加后的数与取min,求最大结果)
1845E DP计数 (给定个盒子个球,一个盒子里至多一个球,问次操作之后可能存在的情况数)
1846F 交互
1847D 数据结构 (从01串中取出若干给定子串拼接,进行若干修改操作后使得字典序最小)
1847F 数据结构 (给定无穷数列前n项,,求大于的第一个位置)
1849E 单调栈 (求给定排列满足最大值位置大于最小值位置的子区间个数)
1853C 模拟 (无穷多个数,每次删掉第个数,求删次后的最小值)
1853D 构造
1853E 可反悔贪心 (类似积木大赛,但是可令)
1854A1/2 构造
1854B DP (bitset优化)
1856D 交互+分治 (猜测一个排列中的最大数位置,每次查询中的逆序对的个数,代价为,总代价不能超过)
1856E2 DP (给定排列和一棵树,求满足的个数)
1858D DP+双指针 (给定01串和,对于,求修改至多次后,)
1859D 排序+贪心 (给定组,位于区间内的点可以移动到中任意点,不限移动次数,次查询从其实位置能到的最右端的点)
1859E DP (给定序列,选择其互不相交的长度和为的若干区间,每个区间价值为,求最大价值,)
1860D DP (给定01串,求最小交换次数使得子序列的个数等于子序列的个数,)
1861E DP计数 (给定 ,定义一个数列的价值为 将其划分为若干连续子序列后,恰为 的一个排列的子序列的个数 的最大值,求长度为 的所有元素值为 的数列的价值和)
1862G set+map乱搞
1863E 拓扑排序 (有 个任务,某些任务完成有前置任务限制,每个人物只能在时刻 完成, ,你可以自由选择先做哪个任务,求完成第一个任务到最后一个任务的最短时间, )
1864D 构造+坐标变换 (给定01矩阵,每次可选择一个数,以其为金字塔尖的元素全部取反,求最小操作次数使其全为0,)
1864E 贪心+位运算+期望 (Alice知道,Bob知道,两个人依次说,我不知道四者之一,一旦有人说前三者,两人都足够聪明,游戏结束,给定数列,随机从其中选择,求期望中止轮数)
1864F 数据结构 (给定一个序列 ,每次查询区间 ,将介于该区间的值取出来构成一个新的序列 ,然后每次操作可以任选 ,令 中 的数减去 ,且要求 与 不相交或包含,对每次询问求最小操作次数, )
1866D 动态规划(给定 的数组 ,给定 ,执行 次操作,第 次从第 列选择一个数加到答案中,然后这个数归零,求最大答案)
1866G 二分答案( 节车厢,每节车厢 个人,每个车厢的的人不能穿越超过 个车厢间隔,问经过重拍后,人数最多的车厢最少的人是多少)
1867D 构造+图论(太长不好描述)
1867E2 交互 (给定为偶数,查询返回,至多57次查询求整个数列异或和)
1868B1 位运算+贪心 (给定,每个数减去一个二的幂次加到另一个数上,每个数仅减去一次且进接收另一个数减去的数,问是否能所有数相等,)
1870E DP (给定一个数列 ,将其划分为若干不相交子序列,最大化每个子序列的 mex 的异或和, )
1872G 贪心 (给定一个数列 ,执行至多一次操作 ,删除 ,加入 ,最大化数列的和)
1875F 动态规划+概率(一个有向图,起始在 号点,目的地在 号点,AB两个人共同开车,每次随机选择一条路,如果相同,则走这条路,如果不同,则这两条路都报废,重复上述流程,求两人能走到 号点的概率)
1876C 构造+图论 (给定一个序列 ,构造一种方案,使得每次圈出的元素的下标构成的序列 等于未被圈出的元素的值按顺序构成的序列 ,一个数可以被多次圈出, )
1884D 动态规划+数学 (给定一个序列 ,定义 为好的数对当且仅当 ,不存在 使得 且 ,求好的数对的个数)
1886D 数学 (对于一个排列 按如下规则生成字符串:若 ,添加 ;若 ,添加 ;否则添加 。给定一个上述字符串,问有多少种可能的排列, 次单点修改一个字符,每次输出可能的排列个数, )
1891F 数据结构 (有根树初始一个点, 次操作有两种,1 v ,在 下添加一个编号为当前树 siz+1 的点,2 v x ,给当前 的子树所有点权值 +x ,求最后所有点权值, )
1895E 博弈+图论 (两个人打牌,每个人每张卡有攻击 和防御 ,攻击大于对方防御则可胜利,Alice 和 Bob 轮流出牌,每个人需要轮流出能打败对面的卡,不能出则失败,两人初始卡片集合均给定且互相已知,先手必胜/平局/必败的初始选择种类数, )
1898E 贪心+双指针 (给定字符串 和 ,每次操作可以删除一个字符或者选择一个区间排序,问是否存在一种操作方法可以从 到 , )
1900D 数学 (定义 为 中较小的两个数的 ,求 , )
1900E 图论+动态规划 (给定一个图,每个点非负点权 ,做一遍传递闭包,求所有最长简单路径的最小路径点权和, )
1904E 数据结构 (给定一棵树, 次查询,每次询问 和 个点 ,求从 出发不经过 的最长简单路径, )
1891E 暴力+讨论 (给定一个序列 ,可将 个数置 , , )
1905D 数据结构 (给定一个 的排列 ,定义价值为前缀 ,即 ,求 的所有 cyclic shift 的最大价值, )
1913D 分治 (给定一个元素互不相同的序列 ,每次操作选择一个区间删除其中除了最小元素外的其他元素,求经过任意次操作可能得到的不同序列个数,结果取模, )
1917D 数据结构 (给定一个 的排列 和一个 的排列 ,构造 ,求 的逆序对个数,答案取模, )
1983E 期望 ( 个小球每个小球有一个分数 ,前 个球是特殊的,Alice和Bob轮流随机移除一个球,并获得球上的分数,初始分数均为0,如果选到了特殊的球,则可再次选择,否则对方选择,两人轮流直到没有球,求两人得分期望, )
1993D 二分+动态规划 (给定一个序列 和正整数 ,每次可以删除一个长度为 的区间内的所有数,知道无法操作,最大化最后序列的中位数, )
1995D 动态规划 (给定一个长度为 只包含 种不同字符的字符串,选择一个字符集合,将原字符串分割为以该字符集合中字符为结尾的单词,最长单词长度不超过 ,最小化所选则字符集合的大小, )
1998D 图论 (不好描述)
1993F1 暴力+对称 (给定一个长度为 仅含 的字符串,机器人从 开始执行 次,地图的大小为 ,若机器人即将越界,则反转字符串中所有即将越界方向的命令,如 将要向左,那么所有 。求整个过程除初始时刻外经过 的次数, )
1998E1 思维 (不好描述)