随笔分类 - 题解
题解:P7306 [COCI2018-2019#1] Strah
摘要:分享一个 的方法。 分析 考虑每次在 轴上固定左端点,然后移动 轴上的右端点,并统计答案。 考虑如何统计一个 的区域的贡献。 显然长度为 的区间有 个,所以贡献即为: \[\begin
题解:P8245 [COCI2013-2014#3] PAROVI
摘要:题意 定义两个整数 之间的距离为这两个整数所有对应位上的数的差的绝对值之和,记为 。特别地,如果 两数的位数不相同,则在位数较小的数前补足前导 。 现在,给定两个整数 ,请你求出所有在区间
题解:P5184 [COCI2009-2010#2] PASIJANS
摘要:分析 考虑贪心,每次尽量选最小的字符。 显然是每次选字典序最小的弹栈。 我们要比较的是每个栈的字典序,但是朴素比较是 的,考虑将它优化到 。 这个时候我们可以先离散化然后套路地将所有串拼一起跑 SA。 记得在每个串之间加分割符。 这样每次比较字典序就变成了 \(O(
题解:P6351 [PA2011] Hard Choice
摘要:题意 维护一张无向图,要求支持以下操作: 切断一条边。 查询两个点是否有有两条完全不同的路径相连。 分析 因为断边操作不好维护,考虑离线后将断边变为加边。 因此,我们只需要维护加边操作即可。 考虑使用 LCT。 首先,因为涉及到边权,套路地用节点代替边。 如果某一条边连接的两个点属于两个不同的连通块
题解:P10939 骑士放置
摘要:分析 前置知识:网络流,最小割。 套路题。 在这道题基础上有很多改版,比如长脖子鹿放置。 首先黑白染色。 保证染色后同种颜色上的骑士不能互相攻击。 1 0 1 0 0 1 0 1 1 0 1 0 0 1 0 1 染色之后考虑将原题转化为最小割问题。 也就是说在棋盘上放满骑士后再
题解:SP1741 TETRIS3D - Tetris 3D
摘要:题意 维护一个 的平面,每个点有一个高度。 要求支持一个操作:查询一个矩形区域的最大值,并将该区域更新为最大值加上给定的数。 分析 发现 ,考虑使用二维线段树维护。 二维线段树,顾名思义,就是在普通线段树的每一个节点上维护一棵线段树。 在本题
题解:P10950 太鼓达人
摘要:分析 显然答案包含长度为 的所有 串,每个串和前一个的重叠长度为 ,所以每个串对长度的贡献为 。 因此该串的长度为所有 串的个数,即 。 考虑第二个如何解决。 发现每个位置的状态只有 和 ,考虑爆搜。
题解:P8343 [COCI2021-2022#6] Zemljište
摘要:题意 给定一个 的矩阵,每个点给定一个权值,要求求出一个子矩阵,其权值和为 ,使 最小。 分析 考虑枚举子矩阵。 首先预处理二维前缀和用于快速计算矩阵和。 可以暴力枚举左上角 和右下角 \((x_2,
题解:CF913C Party Lemonade
摘要:分析 因为容量为 ,所以对于任意的 ,第 种瓶子一定可以通过选择 个 种瓶子来实现。 定义一个瓶子的性价比为 ,即 \(\dfrac{2^{i-
题解:CF913D Too Easy Problems
摘要:题意 给定一场考试,考试会持续 毫秒,由 道题目组成,你可以用 毫秒解决第 个问题,每个问题给定一个整数 。 要求你选出一个试题集合 ,若该集合大小为 ,它应满足 \(T\geq\sum_{i\in S}\limi
题解:P3968 [TJOI2014] 电源插排
摘要:题意 维护一个 串,初始均为 ,支持: 单点将 修改为 。 查询区间中 的个数。 查询最长且最靠右的连续 段的靠右的中点,并将其改为 。 分析 第一个操作和第二个操作显然使用动态开点线段树维护。 我们只需要解决第三个操作
题解:P5618 [SDOI2015] 道路修建
摘要:题意 给定一个 的网格,网格上的点和上下左右连边。 要求支持以下几种操作: 修改某条边的边权。 求满足 的点构成的点集的最小生成树。 分析 这道题的想法和 P4246 [SHOI2008] 堵塞的交通 很相似。 注意到 \(N, M \leq
题解:P6089 [JSOI2015] 非诚勿扰
摘要:分析 首先我们要求出对于第 位女性,她选择每个列表中的男性的概率是多少。 第一轮选择第一位的概率为 ,选择第二位的概率为 ,以此类推。 显然第一轮选择第 位的概率为 。 假设列表中有 名男性,那么第二轮
题解:CF914C Travelling Salesman and Special Numbers
摘要:题意 定义 为 二进制下 的个数。 定义对 的一次操作: ,显然任意正整数经过若干次操作后会变为 。 给定 和
题解:CF915G Coprime Arrays
摘要:题意 我们称一个大小为 的数组 互质,当且仅当 。 给定 ,对于每个 ,你都需要确定这样的数组的个数——长度为 的互质数组 ,满足对
题解:CF915C Permute Digits
摘要:题意 给出两个正整数 。在十进制下重排 ,构造一个不超过 的最大数,不能有前导零。允许不去重排 。 分析 因为位数小于等于 19,考虑搜索。 开个桶维护 中每个数码的个数,按位搜索即可。 每一位贪心地从大到小枚举,显然这是最优的。 最劣复杂度
题解:CF916D Jamie and To-do List
摘要:题意 维护一个数据结构,支持以下几种操作: set ai xi:设置任务 的优先级为 ,如果该列表中没有出现则加入该任务。 remove a_i:删除该任务。 query a_i:求优先级比 小的任务个数,如果没有则输出 。 undo sum
题解:CF916B Jamie and Binary Sequence (changed after round)
摘要:题意 把一个数分解成恰好 个 次方的和,可以重复,要求保证最大的 要尽可能的小时, 的字典序尽可能大,输出序列 。 分析 首先我们借助二进制拆出一个满足 序列 ,满足
题解:CF235C Cyclical Quest
摘要:题意 给定一个主串 和 个询问串,求每个询问串的所有循环同构在主串中出现的次数总和。 分析 后缀自动机好题。 循环同构的过程可以看作从该串的头部删除一个字符,并在尾部加入一个字符。 在后缀自动机上,跳 parent 树的过程就相当于删除头部的若干个字符。 所以我们可以套路地把