【ARC136E】Non-coprime DAG(分类讨论)
Non-coprime DAG
题目链接:ARC136E
题目大意
有一个 n 个点的有向图,i 有连向 j 的边当且仅当 i<j 而且 gcd(i,j)>1。
然后给你每个点的点权,你要选一些点,使得任意两个点之间再原路都没有一个点能到另一个点,要你最大化选的点权和。
思路
考虑如何看两个点之间有没有路径。
考虑用 进行中转,毕竟是最小的质数。
所以对是否被 整除分类讨论:(假设看 是否能到 ,)
设 是 的最小质数。
:都有 公因子,直接连边。
:考虑把 变成二的倍数,那用它最小的质数变,其实就是加上它,所以是
那条件就是
:相同的想法,先变到 小一点的二倍数,再变到 ,
那条件就是
:一个直观的想法是 ,考虑证明。
充分性是有的,我们看看必要性,即看看会不会存在不满足这个条件但是连边的情况。
那不满足条件就是 ,那从 就可以列出:
(两边的两个小于等于其实是显然的,就从第二第三种情况可以得到)
那 一定到不了 ,所以只能是 直接到 ,设公共部分是 ,表示成 。
而且因为 ,会有 ,然后 ,啊就矛盾了(就算 也满足上面那个)
所以是对的,那考虑讨论完有什么用。
发现不满足的条件是一个一边闭合一遍开的区间。
但这只是对于它是小的那个或者大的那个。
那如果对于所有的情况,它就是一个闭区间!
观察一下不难看出,对于偶数,就是 ,对于奇数,就是
所以你就是区间求交就代表不能到达。
然后你就区间求交求贡献,差分一下贡献单个加再前缀和加过去就可以。
代码
__EOF__

本文作者:あおいSakura
本文链接:https://www.cnblogs.com/Sakura-TJH/p/ARC136E.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文链接:https://www.cnblogs.com/Sakura-TJH/p/ARC136E.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现