摘要:
https://darkbzoj.cc/problem/1109 分析 考虑状态表示原来在位置 的数有贡献(也就是说在结束操作后它的位置 满足 )的最大值为 。 那么我们有转移方程 ,其中 $(j<i, ~ 阅读全文
摘要:
这里提供一个线段树合并的做法,个人感觉思维难度和代码难度都不大,~~我一发过了这题,nice~~ 分析 把每个人对应的路径看成是询问,考虑如何处理这些询问: 可以发现对于一条路径 ,相当于是 依次打上 这样的时间戳,然后最暴力的做法就 阅读全文
摘要:
目录 线段树分治 本题做法 实现 线段树分治 事实上线段树分治的做法很简单,就是在时间轴上开线段树,以方便处理在一段时间内其效果的操作。 比如说,现在整棵线段树维护的时间范围是 ,开出的线段树自然是: 现在有一个操作在时间 上作用,那么对应于线段树的节点就是: 又有 阅读全文
摘要:
平面图 首先介绍一下平面图的相关性质: 若图 能被画在平面上且不同的边仅在端点处相交,则称图 为平面图。画出的没有边相交的图称为 的平面表示或平面嵌入。 一个图的平面嵌入会将整个平面划分成若干个互不连通的区域,每个区域称为一个面。 其中,无界的区域称作外部面,反之称为内部面。 阅读全文
摘要:
分析 这题做法很简单: 跑一遍 (最小生成树),把这棵树建立起来,上面的边标记为树边。 枚举非树边 ,记边权为 ,考虑这条边能够提供的增量 。 具体来说:只需要求出树上 的路径上的边的最大值 和严格次大值 $ 阅读全文
摘要:
AtCoder Beginner Contest 192 D 注意到只有一位的时候多少进制都一样,方便起见先判掉。 剩下的都是进制越大值越大,考虑二分: 对于当前进制 ,从低位开始计算当前的值,如果发现比限制大了就返回 false,注意到二分的 上限是 ,也就是计 阅读全文
摘要:
分析 这题就是一道需要分类讨论的图论。。 注意到题目中每个点只有一条出边,也就是说给出的图是一个内向的基环树森林。 首先进行预处理: 开一个并查集,这能够将两个点不在同一棵基环树的情况筛掉。 利用内向树随便找一个点跳到基环树的环(环上所有点记为“根”)。然后建反图,在反图上跑一遍 $\texttt{ 阅读全文
摘要:
写完发现代码比别人的都长(悲 但是效率不错,~~在洛谷可以排在最优解第四页~~ 分析 大致思路比较简单: 枚举位(使用 ),从低位开始枚举变量的值,如果没填过就选取 中没选取过的值填上。 当前位三个变量都得到值后,检查是否合法。 当全部位都合法输出结果即可。 接下来考 阅读全文
摘要:
~~块乐~~ 分析 因为这题查询的是指定区间 的最大异或子段,我们很难不想到使用可持久化 来搞。 然而,对于每次查询,如果单纯地使用可持久化 ,那么必须要枚举右端点进行查询,那么每次查询的复杂度是 $O(n{\rm {l 阅读全文