Ynoi 杂题选做。

我要加训 ds。

Ynoi2011 成都七中

标算其实是点分树上直接做,但是我并没有很懂阅读了下其实实际和后面的做法差不多。

先只考虑 l 的限制,将树边边权设为 min(u,v),直接跑 Kruskal 重构树,于是 x 所在连通块就是重构树上的一个子树(子树根可以通过倍增跳上去找到)。

r 限制同理,于是所求即为同个点集构成的两棵树的子树的交中颜色数。离线下来,对第一个树跑 dsu on tree,对第二个树只需要维护单点加入/删除和子树查询颜色数,直接拍平到 dfn 序列上是双 log 的,但是考虑子树查询所以做一步类似树上差分的事情,加入时在和同颜色前驱、后继的 lca 上贡献减一,在这两个 lca 的 lca 上贡献加一即可,于是只需要一个 bit 即可。算上第一个树上 dsu on tree 的复杂度,总复杂度为 O(nlog2n+mlogn)可以通过

Ynoi2003 铃原露露

发现对于同一个 z,若 [x1,y1+1)[x2,y2+1),则 [x2,y2+1) 的限制一定是没用的,根据支配点对的结论你对于每个 x 只需要找它的前驱后继点作为 y 即可,搭配 dsu on tree,你就只剩下了 O(nlogn) 个限制。

具体来说对于每个限制形如一个矩形内所有 [l,r+1) 是不合法的,于是可以矩形加,然后判断一个 [l,r+1) 是否合法就是它对应的点是否为 0,那查询 [L,R+1) 的子区间合法个数即为数子矩形 0 个数,考虑经典转化变成历史最值个数,线段树维护即可。

历史和问题可以先写成矩阵乘法然后再删去无用的位置。

posted @   山田リョウ  阅读(31)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示
主题色彩