09 2023 档案
摘要:考虑从小到大加入每种权值,同时维护一个状压数组 。 具体的,我们对于在输入矩形中出现过的数,直接转移;否则枚举当前的数放在哪一位,判断合法性之后转移就行了。 判断合法其实有一种比较简便的方法,每次加入一个数时,如果他在某个三元组的中间位置,且左右的点恰好填了一个,那么就证明这个三元组是单调的,
阅读全文
摘要:题目链接 关于这类问题的一个经典的套路就是:利用差分将区间翻转转换为点对翻转。 既然操作差分了,那么原序列初始时也得以差分的形式进行表示。我们发现,原序列中一定恰好有 个 。 根据题目,翻转操作就是对两个端点采取异或运算。不妨把所有这样的两个端点连上一条边权为 \(r-l+1\
阅读全文
摘要:关于这类问题的一个经典的套路就是:利用差分将区间翻转转换为点对翻转。 既然操作差分了,那么原序列初始时也得以差分的形式进行表示。我们发现,原序列中一定恰好有 个 。 根据题目,翻转操作就是对两个端点采取异或运算。不妨把所有这样的两个端点连上一条边权为 的边,我们发现,一
阅读全文
摘要:题目链接 一个比较显然的思路就是:我们按照右端点从小到大的顺序(右端点相同按左端点从大到小)去考虑每个好的区间。 由于是连通性问题,不难想到用并查集去实时维护连通性。 根据定义,一个好的区间必定对应了一个连通块;我们考虑的是好的区间,所以当前并查集中的每个连通块必定都是一个区间。而在加入某个点前,这
阅读全文
摘要:题目链接 注:为了方便叙述,在下文中,我们用 表示第 个人右边的食物, 表示第 个人左边的食物。 看到题目时一个直观的想法:对于所有 \(c_{\text{pre}(i)}\geq c_{\text{ne
阅读全文
摘要:题目链接 这类题着重于抓住充分条件进行构造。 解决这道题,就得抓住题目中最为特殊的条件: 。我们不难找出一种关于它的充分条件: 。 尝试在此充分条件下设计构造方法:不妨按照 进行排序,之后从
阅读全文
摘要:题目链接1、题目链接2 注意到这道题本质就是一个矩形求和矩形赋值的操作。其中满足:对于任意一个点,每次赋予的权值是单调递增的。 这看起但就像是一个二维线段树能做的范畴。但是众所周知,二维线段树的外层无法进行标记上传操作(无法 pushup),故而这题我们考虑标记永久化。同时,为了简化问题,我们先关心
阅读全文
摘要:题目链接 以下设 为一个阈值,同时也表示值域分块的块长。 先考虑所有 都不为 的情况。对于一组询问,我们设一个 表示:当前已搬完所有 的砖。那么每次只可能是以下两种情况之一: 有至少一摞砖在当前这个单位时间内被搬完 拿 \(x\
阅读全文
摘要:题目链接 先考虑如何判定一个集合是否存在两个异或和相同的子集 ,不然解决这道题就是无稽之谈。 根据异或的优良性质,不妨在 中分别去掉 ,之后从 中任意移动 个元素到 中去,易发现此时两个集合的元素异或和还
阅读全文
摘要:[题目链接](https://codeforces.com/problemset/problem/724/G) 不妨先看一道更为基础的题:[CF845G](https://codeforces.com/problemset/problem/845/G)以及[它的题解](https://www.cnb
阅读全文
摘要:[原题链接](https://codeforces.com/problemset/problem/845/G) 不妨先了解几个前置知识/引理: 异或的抵消性质: * * * $(a\oplus b
阅读全文
摘要:思路 :一眼 set 维护区间的模板。每次打击一个位置就把区间分裂,重新统计贡献—— 这个闭区间最多能放的战舰数为 ( 是因为战舰之间有空格)。 思路 :二分答案。其中判断答案是否合法就只
阅读全文
摘要:[题目链接](https://codeforces.com/problemset/problem/765/E "题目链接") ## 题意 给出一颗无根树,你可以钦定一个根,并进行若干次下述操作: * 选择一个点 ,以及 延伸出去的两条长度相同的路径(两条路径没有重叠的边)。删去其中任意
阅读全文