当前位置: 首页 > news >正文

那快把题端上来吧(三)

CF1814F Communication Towers

边在某种情况下可通过,可以看做在某种情况下出现,且出现时间为端点值域的交集,考虑线段树分治。
递归到叶子节点后,和 \(1\) 在同一个连通块内的全部合法,但遍历赋值太劣了,于是我们考虑打标记。
\(tag[x]\)\(x\) 在几个叶子节点与 \(1\) 在同一个连通块。
只需要给 \(1\) 所在连通块的根标记 \(+1\) ,然后每次撤销时下传标记。
但是,标记并非一定要下传,如果有个连通块在中途接上另一个,然后撤销就会白嫖走标记。
所以我们只维护相连这段时间标记的增量下传。
具体的,如果 \(y\) 要作为 \(x\) 的根,就将 \(tag[x]\) 减去 \(tag[y]\) ,撤销时再加回来,就可以维护出他们在同一个连通块内时根的增量。

点击查看

#include <bits/stdc++.h>
#define lep(i, a, b) for (int i = a; i <= b; ++i)
#define rep(i, a, b) for (int i = a; i >= b; --i)const int _ = 4e5 + 7;
const int V = 2e5;
typedef long long ll;
typedef double db;
typedef std::pair<int, int> PII;int n, m, l[_], r[_], fa[_], sz[_], tag[_], u[_], v[_], stk[_], top;
std::vector <int> op[_ << 2];int fnd(int x) { return fa[x] == x ? x : fnd(fa[x]); }
void mrg(int x, int y) {if ((x = fnd(x)) == (y = fnd(y))) return;if (sz[x] > sz[y]) std::swap(x, y);tag[x] -= tag[y], fa[x] = y, sz[y] += sz[x], stk[++top] = x;
}
void Back(int bot) { int x; while (top != bot) x = stk[top--], tag[x] += tag[fa[x]], sz[fa[x]] -= sz[x], fa[x] = x; }
#define ls p << 1
#define rs p << 1 | 1
#define md ((s + t) >> 1)
void Mdy(int l, int r, int s, int t, int v, int p) {if (r < s or t < l or l > r) return;if (l <= s and t <= r) return op[p].push_back(v), void();Mdy(l, r, s, md, v, ls), Mdy(l, r, md + 1, t, v, rs);
}
void Qry(int s, int t, int p) { int bot = top;for (int x : op[p]) mrg(u[x], v[x]);if (s == t) ++tag[fnd(1)];else { Qry(s, md, ls); Qry(md + 1, t, rs); }Back(bot);
}
#undef ls
#undef rs
#undef mdint main() {std::ios::sync_with_stdio(false);std::cin >> n >> m;lep(i, 1, n) std::cin >> l[i] >> r[i], fa[i] = i, sz[i] = 1;int x, y;lep(i, 1, m) {std::cin >> x >> y, u[i] = x, v[i] = y;if (l[x] > l[y]) std::swap(x, y);Mdy(l[y], std::min(r[x], r[y]), 1, V, i, 1);}Qry(1, V, 1);lep(i, 1, n) if (tag[i] > 0) std::cout << i << ' ';std::cout << '\n';return 0;
}

http://www.aitangshan.cn/news/524.html

相关文章:

  • 时变特征场景下的主动特征获取方法评估
  • (势能线段树)SPOJ GSS4/洛谷 P4145 上帝造题7分钟/P7334 吊打 题解
  • 6.3.3 狄利克雷卷积
  • 6.3.1常见积性函数
  • 一些 DS 题目
  • 虚弱相关-【改错】-下
  • 这一次,国产全自研高性能图形GPU真的来了
  • 一文彻底讲透:AI大模型应用架构全解析
  • 读开源项目成功之道11开源项目落幕
  • 2025未来科学大奖揭晓!每人奖金约720万元
  • Dataclass
  • 计算机基础之编程
  • WRC观点:人形机器人五大爆发趋势
  • dotnet X11 获取多屏 edid 信息
  • SEO 快速流量见效的方式-新词
  • 揭开红血球双凹碟形之谜
  • OVS配置CookBook
  • 推荐7本书《MLIR编译器原理与实践》、《ONNX人工智能技术与开发实践》、《AI芯片开发核心技术详解》、《智能汽车传感器:原理设计应用》、《TVM编译器原理与实践》、《LLVM编译器原理与实践》
  • 打开手机 设置:搜索快应用管理--打开,删除其中不是自己安装的APP,可能有好多不是自己安装的
  • 递归因果发现算法与Python实现
  • 镜像地址相关
  • 军用警用无线电加密算法存在严重漏洞,可被轻易破解
  • Mybatis-Plus的InnerInterceptor插件之beforeQuery方法
  • 第二十一天
  • 有限状态自动机理论
  • Mybatis-Plus的InnerInterceptor插件之beforeQuery()
  • xz pixz 的多线程解压缩方法 - tsunchi
  • 苹果容器Apple container是做什么用的?
  • kubernetes-1.32高可用集群部署(kubeadm)
  • 安装pandas和openpyxl