09 2023 档案

摘要:方法一:差分 因为是先修改后查询,很容易想到差分,但因为数据值域 [109,109] 过大,所以不能使用差分数组,而应用 map 进行存储,如代码所示: map<int, int> diff; // 正常进行差分操作 for(auto& f : flowers) diff[f[0]]+ 阅读全文
posted @ 2023-09-28 16:22 XYukari 阅读(8) 评论(0) 推荐(0) 编辑
摘要:传送门。有这样一个结论,由 x 得到的反转区间 [a,b] 的对称轴就是 x 所在的题给区间 [l,r] 的对称轴,且 [a,b][l,r]。 这个结论有什么用?如果没有这个结论,我们离线 q 次询问得到的是一系列散乱的反转区间。因为反 阅读全文
posted @ 2023-09-27 08:44 XYukari 阅读(89) 评论(0) 推荐(0) 编辑
摘要:传送门。有这样一个结论:一个后缀中[i+1,n] 中所有的正数都可以被取到,所以维护一个正数后缀和 si,枚举每个位置 i,如果 i 为奇数,答案对 ai+si+1max,否则对 si+1max。 下面证 阅读全文
posted @ 2023-09-26 13:34 XYukari 阅读(38) 评论(0) 推荐(0) 编辑
摘要:异或和按位处理的典型例题。要求所有子区间异或和乘区间长度的总和,朴素的方法是 O(n2) 地枚举区间,显然无法通过。 因为涉及异或和,而异或运算不进位,故自然地想到把 ai 写成二进制形式,单独研究每一位的贡献,最后再合并。这是处理此类问题的一般思路。 1. 二进制拆分 比方说, 阅读全文
posted @ 2023-09-26 12:54 XYukari 阅读(154) 评论(0) 推荐(0) 编辑
摘要:基环树上的“追及相遇”问题。 考虑什么情况下,Valeriu 能“无限期”地从 Marcel 手中逃离。参考样例 1,我们发现当 Valeriu 进入基环树的环中,他总能通过预判,逃往 Marcel 的反方向,避免被抓;而如果两者都在子树中,Marcel 就能步步紧逼,将 Valeriu 堵在叶子结 阅读全文
posted @ 2023-09-22 13:56 XYukari 阅读(12) 评论(0) 推荐(0) 编辑
摘要:传送门。要求使得区间和小于 k 的子区间长度,显然可以二分处理。二分区间长度,枚举区间左端点,check 两项内容:区间是否合法(符合 himodhi+1=0 ),区间和是否小于 k。对于当前区间长度,只要有一个区间满足条件,即返回真。 区间和可以通过前缀和 \ 阅读全文
posted @ 2023-09-22 11:05 XYukari 阅读(39) 评论(0) 推荐(0) 编辑
摘要:考查异或的基本性质。 对于操作2,用两个变量 X0,X1 记录 si=0/1 位置的异或和,在查询时直接输出即可。那么,在操作 1 如何更新 X0,X1? 如果操作 1 只改变一个数,比如将 si0 改为 1,那么我们只需将 \(a_ 阅读全文
posted @ 2023-09-21 21:21 XYukari 阅读(19) 评论(0) 推荐(0) 编辑
摘要:传送门。答案要求统计“走过的边数”,这个不是很好统计,但是统计“哪些点不需要去”比较简单: 没有金币的子树不需要去; 删去 1 之后的叶子结点不需要去; 删去 1,2 之后的叶子结点不需要去。 可以证明,其他的点都需要去到。 删去上述结点的依据是度数(都是叶子结点)和金币,自然地想到使用拓扑排序处理 阅读全文
posted @ 2023-09-21 20:09 XYukari 阅读(6) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示