cdcq

梦幻小鱼干

导航

统计

【CCPC2020网络赛02】Graph Theory Class

原题:

题意:

给你一个n个结点的完全图,结点从1~n标号,结点i和j之间的边权为lcm(i+1,j+1),问你这个图的最小生成树的边权和是多少

 

为方便讨论,现在给所有结点的标号都+1,于是标号范围变为2~n+1,结点i和j之间的边权变为lcm(i,j)

性质1:

lcm(i,j)>=i且lcm(i,j)>=j

先考虑一个特殊情况,如果i是质数

此时情况有2种,要么i|j,那么lcm(i,j)=j,否则lcm(i,j)=i*j

显然i*j也是i的倍数,因此只需要让i和一个最小的数连就行了,最小就是2

一般情况,如果i是合数,那么由于lcm(i,j)>=i,因此反正怎么选都不可能小于i,直接让i跟一个因子连就行了

这样怎么能保证连出来是一个树呢

性质2,一种构造树的方法:

让每个结点i都跟标号小于i的某点连边,这样可以归纳地证明连出来是一个树

2肯定比除了2的质数小,合数的因子肯定比它自己小,因此上面的连法保证得到一个树

于是对于质数,和2连边,lcm=2*i,对于合数,和一个因子连,lcm=i

最后的总边权等于(2+n+1)*n/2+∑p-2-2,∑p是小于n+1的所有质数的和,-2-2是因为2不会和自己连

用min25筛出质数和即可

求质数和我还不会,问了队友(清欢)直接就知道可做,然后写完就A了盒盒

 

没有代码

posted on   cdcq  阅读(1594)  评论(0编辑  收藏  举报

编辑推荐:
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
阅读排行:
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· 新年开篇:在本地部署DeepSeek大模型实现联网增强的AI应用
· Janus Pro:DeepSeek 开源革新,多模态 AI 的未来
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(三):用.NET IoT库
· 【非技术】说说2024年我都干了些啥
点击右上角即可分享
微信分享提示