【题解】CF1007D Ants
题意:
有 对链,每对链要选择一条,使得选择的链两两不交,求一组方案。
题解:
一眼看上去就是一个 2-sat,考虑一种暴力的做法,枚举每一条边,覆盖这条边的链两两连边。
我们可以树链剖分+线段树优化,这样每条链都对应了 个点。
覆盖一条边的所有链恰好就是这个边对应的叶子及其祖先的所有节点上的链。
显然选择一个链以后,线段树中其子树中和祖先中的链都不能选了。
因为原命题与逆否命题等价。
所以 选 子树都不选的逆否也成立,即 子树中的选 不选成立,所以这道题只考虑子树中的链不能选就可以了。
这个东西显然可以前缀和优化建图。时间复杂度 。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程