11.25~12.30 总结

做题

这里把这段时间的做题一并写上了(课件中某些没写代码的题目还没有):

P8500 NOI2022D2T2(闲话是 NOI 各年的 D2T2 都是我比较喜欢的题目?)

考虑调整,不能存在交换后仍然合法的逆序对。然后发现 C 性质和 B 性质等价,因为我把最小值 \(V_i\) 往左放一定是不劣的。B 性质没固定的位置一定是递增最好;而考虑固定-未固定的贡献。

非常适合贪心而不是优化 dp 的性质:每次的代价是前面的渐大,后面的渐小,因此这个最小值位置也是递增的,和没固定的位置之间的目标(递增)是一样的(这也是 yny 说“直接贪”)。因此直接取下限上的最小值位置并修改贡献即可,修改后的贡献也不破坏这个性质。

把有交区间处理也是简易的。首先不同 \(V\) 可以不交,相同 \(V\) 是按照什么东西排序然后还是往左放就行了,这样就做完了。

P3209 平面图一个性质是 \(E\le 3V-6\),因此直接 \(O(m^2)\) 即可。

P5897 线段树维护行间决策单调性优化的 dp,需要底层分块降低空间消耗。

P10896 折线容斥差不多了。

P6185 先连通块处理 \(2\) 操作限制,一操作又是构成了一个基状物,如果有奇环就张出了不改变全局奇偶性的所有变化,否则是二分图是左右部点差不变。

P7450 coloring-coding 把他变成五种颜色,然后二分之后斯坦纳树即可。

P5235 这个变化非常可逆!显然一个复杂回路可以拆分成各只包含一个环的回路。建出生成树,一条包含若干非树边 \(e_1,e_2,\dots e_k\) 的回路可以拆为每条 \(e_i:u\to v\),先从根沿树边走到 \(u\),再走 \(u\to v\),再从 \(v\) 回到根。生成元就只有 \(m-n\) 个。套用 Schreier-Sims 算法即可。

ARC157F 可能状压 dp。首先答案 \(\ge \frac 23n\),因此相邻间隔 \(\le \frac 13n\),因此状压复杂度是 \(O(n2^{n/3})\)。。。

P6292(这个时候重新学习了 SAM 和 LCT 并理解多了一些) 像 Hanghang 的项链一样维护 pre 然后扫描线。在反串的 parent-tree 上,相当于修改了到根的链。可能使用 LCT 的 access 维护(一个实链就是 pre 相等,大小连续的一些串,可以在线段树上直接修改)。

P4248 LCP = parent tree 上 LCA。

P4770 把每次的 T 拿来在 S 的区间的 SAM 上做匹配即可,其中区间 SAM 用可持久化线段树合并处理。

P5327 首先虚树结论是加上根,按 dfn 排序之后相邻点 \((u,v)\) 贡献是 \(dep_u-dep_{LCA(u,v)}\),线段树合并时处理贡献。

P5811(神秘构造) 设 \(a\le b\le c\),只考虑 \(a,b\)。根据树的策略,找到 dfs 树重心,肯定是 B 用重心联通,A 用子树边联通。子树边能联通 A 就可以了。

P7560 比分糖果弱。换维扫描线,只需找到最后一次全部清空,而这是前缀最小值。之后容易维护。

P4117 尝试倍增值域分块未成功。然而序列分块,用并查集维护块内值的真正值,每次散块重构,整块考虑当前最大值和 \(x\) 的关系,令 \(mx\)\(d\) 的代价也是 \(O(d)\) 的。\(O(n\sqrt n)\)

P4119 值域分块,序列分块,并查集维护每个值的真正值,再维护每个块有值域块的多少东西及其前缀和。散块重构,询问直接先扫值域再扫值。\(O(n\sqrt n)\)

P11192 神秘的有限域相关构造。

P6847 线段树合并时颜色段均摊即可,具体写法可以断开/添加左右儿子。

P9257 首先转化一通为答案 \(k\le 30\) 的最小点覆盖。每次分讨最大度数点取自己还是邻居,当最大度数 \(\le 2\) 时意味着全是链和环可以直接计算。复杂度变成了 \(O(1.46^k(n+m))\)(是可以特征方程算的,但是直接贺的复杂度)。

P9970 有结论:每个 mex 不变的极小区间是只有 \(O(n)\) 个,证明不难。计算考虑把每个 \(mex=k\) 的极小区间找到左/右第一个 \(k\) 拓展。之后是容易的。

P4233 其实主要问题变成了计算强连通竞赛图。竞赛图的强连通分量是链结构,因此通过 SEQ 计算。

P3547 答案有三种:只取 \(a,b\);把 \(a\) 的最短路逐个替换为 \(b\)(对应几种值域)。只有只取 \(b\) 不是很容易计算。有性质:任何边不会两次作为第二边更新,于是加上这个剪枝的 SPFA 获得 \(O(m\sqrt m)\) 的复杂度。

ARC102F 非常神秘的结论题,没有什么理解。

P6578 卡常的分块。操作分块,每 \(\sqrt n\) 个操作扫描值域,把新的 \(>x\) 改为 \(\le x\)。回答询问时加入修改的影响,加完撤销。需要对序列分块维护 01 连续段来平衡复杂度为 \(O(n\sqrt n)\)

P8114 经典的立体转化然后杨表计数。

AT_hitachi2020_f 首先观察到新图 \(H\) 直径只有一条,然后直径端点向其他点的 dis 和新图构成了双射,dis 只需满足树上相邻就差 \(\le 1\)。但是还需枚举端点。然而直径中心是确定的,从这里 dp 即可。

P10598 带权最大独立集,网络流即可。

P4502 转化为求三角剖分三角形数量,又转化为 Delaunay 三角剖分的内圆外圆计算,这可以投到三维 \(z=x^2+y^2\) 抛物线上计算面在哪侧。

北京图论讲课的一些内容(还没写)

总结

主要打算更多地练习数据结构和一些具有思维量较大的题目。

在家里的学习效率可能增加了。

posted @ 2024-12-30 08:25  British_Union  阅读(45)  评论(4)    收藏  举报