上一页 1 2 3 4 5 6 ··· 8 下一页
摘要: RT,动态加边,会形成 ECC,但是为了不改变树的形态,选择将 ECC 中的点划在一起,同时指向深度最低的点,用并查集,由于按深度合并,所以是 nlogn,如果加一条边,就从两点向上找 LCA ,将路径中的所有点都合并,过程中维护答案。 code #include <iostream> #inclu 阅读全文
posted @ 2025-08-15 14:50 yabnto 阅读(24) 评论(0) 推荐(0)
摘要: 整除运算-进阶 由于我们的选择约束只与上一个有关,所以可以设定状态:\(f_{ij}\),然后我们直接暴力转移,考虑优化,可以视作将前面的所有都转移过来,然后删掉它的倍数的 dp 值 芒果点兵 这个题暴力拆贡献,然后无脑 \(O(n^3)\) 转移即可,代码难度有点 抢红包 考虑暴力,枚举秒数,干扰 阅读全文
posted @ 2025-08-14 21:57 yabnto 阅读(27) 评论(0) 推荐(0)
摘要: 什么是矢?这就是矢 Easy problem I HDU - 7284 思路 没有任何思维,如果你想简单点做这个题,那么你还是止步吧,这个题目直接用最简单的思路,分类讨论,按照绝对值内正负分别建立线段树,由于 x 不减,所以从一个树跳到另一个树最多一次,总时间复杂度 \(O((n + m)logn)\) 由于思路太短了 阅读全文
posted @ 2025-08-13 16:16 yabnto 阅读(46) 评论(0) 推荐(0)
摘要: Minimum OR Path 由于是位运算,我们最常见的思路就是从高到低枚举答案位(01 trie),在这题中,枚举答案可以限制 A 的选法,限制后用那些可用的 A 判断是否可以到达 N 即可(将 \(i\) 到 \(i + A_i - 1\) 视做线段,进行全覆盖),注意在一开始要将限制放开,然 阅读全文
posted @ 2025-07-23 22:16 yabnto 阅读(24) 评论(0) 推荐(0)
摘要: Restore Permutation 这是一个思维题,注意到 1 是不会被任何数产生贡献的,那么对于最后一个 0 必然是 1,当我们去掉 1 对于往后的所有贡献时,2 就必然不会被任何数产生贡献,因此最后一个 0 必然是 2 以此类推即可 Count the Trains 一开始想的是线段树,但是 阅读全文
posted @ 2025-07-23 22:01 yabnto 阅读(12) 评论(0) 推荐(0)
摘要: CF1638E Colorful Operations 从这个题目开始,提取关键词:颜色、操作序列,我们很快就能想到建立颜色个数个线段树,但当颜色个数比较大时,我们不可能建立那么多线段树,考虑到区间覆盖,我们可以思考的是,是否可以用一个规则来概括整个区间,那么在这里,我们就认为整个区间都是一个颜色。 阅读全文
posted @ 2025-07-23 20:58 yabnto 阅读(18) 评论(0) 推荐(0)
摘要: A. LIS 考虑每个点如何产生贡献(对于多个区间的总和且与节点有关的问题,我们可以思考,每个点如何产生贡献): 当它作为一个可以被转移的点时 当它作为数列开头时 第二个很好处理,我们看第一个如何做,考虑到题目描述中讲到是第一个最小的(题目描述如下) 对于 \(i < j \le R\),选取最小的 阅读全文
posted @ 2025-07-22 21:48 yabnto 阅读(35) 评论(0) 推荐(0)
摘要: 开个坑 不难很矢 感觉很吃剪剪枝 P3710 方方方的数据结构 为了不写分块新学一个数据结构不亏 code #include <iostream> #include <algorithm> #define int long long using namespace std; const int Ma 阅读全文
posted @ 2025-03-21 12:33 yabnto 阅读(45) 评论(0) 推荐(0)
摘要: #include <iostream> #include <algorithm> using namespace std; const int MaxN = 1e5 + 10; struct Node { int ch[2], fa, w, x, tag; } a[MaxN]; int n, m; 阅读全文
posted @ 2025-03-08 17:39 yabnto 阅读(19) 评论(1) 推荐(0)
摘要: 维什戴尔本色出演 阅读全文
posted @ 2025-02-25 14:38 yabnto 阅读(66) 评论(0) 推荐(0)
上一页 1 2 3 4 5 6 ··· 8 下一页