02 2023 档案
摘要: 肯定扫描线在考虑维护什么东西,假设 右移时可以暴力得到所有新值,发现需要维护区间历史版本和以及区间当前值之和 这三个操作对于一个数来说变化次数都是 的,所以可以暴力修改发生变化的值的位置 这显然是一段后缀,可以直接暴力更新,原因是考虑到
阅读全文
摘要: 术树数 这题有许多优美的结论,并加深了对线性基的理解 图论中非常有用的结论(路径可重): 1.包含一个点的简单环张成了包含一个点的所有环 2.考虑图的任意一棵生成树,取两点树上路径权值和异或上任意环的异或值构成了这两点间的所有路径
阅读全文
摘要: 感觉是很套路的题 按 分层后 很容易想到 注意到同层 递增, 递减 所以很容易猜到决策单调性,但是每个点的决策集合是不同的区间,这与一般的决策单调性可不一样 怎么办呢?扔到线段树把决策区间相同的放在一块一起做,最终答案取 $\m
阅读全文
摘要: 这个问题是不好判断的 考虑简单点的, 到 是否连通 那么只要在最外围一圈 #(显然一些位置不能加),判断 和 是否能通过 # 八连通即可 如果是双连通呢?只要这两点所在连通块不能通过只加一个 #
阅读全文
摘要: 学习到了一些 的 设 表示用了 的元素,当前和为 的方案数 有两样不好处理的东西 第一是当前和不一定为整数 第二是可重集合的重复计数问题 关于问题二的解决只需钦定加数大小顺序即可 这个显然不能
阅读全文
摘要: 二维平面很容易想到扫描线,然后不知道维护什么信息 颜色的变化自然要能记录下来,所以线段树每个结点维护一个 set 表示覆盖这个点代表区间的所有颜色 这样加入和删除就容易了 统计答案,无非是把当前能看到且未被统计过的颜色统计入答案 考虑一个颜色怎样合法,必然是存在一
阅读全文
摘要: Trie 的高阶操作 用权值线段树结构表示这棵 Trie,那么操作时直接线段树分裂取出值域在 内的数构成的 Trie,也即线段树 接着在这棵线段树上修改,修改完后合并回去 看三个位运算,发现 x&y=((x^U)|(y^U))^U} 于是变成两个运
阅读全文
摘要:[JLOI2009]神秘的生物 只需要维护连通情况,采用最小表示法,表示此格是否存在,也即插头是否存在 分情况讨论当前格子的轮廓线上方格子和左方格子状态,转移考虑当前格子选不选,决策后状态最后要能合法 #include <bits/stdc++
阅读全文
摘要:写了发假的 , 维护括号序 #include <bits/stdc++.h> #define IN inline #define eb emplace_back using namespace std; temp
阅读全文
摘要:[SDOI2011] 消耗战 #include <bits/stdc++.h> #define IN inline #define eb emplace_back #define fi first #define se second #define mp make_pai
阅读全文