2020中国大学生程序设计竞赛(CCPC)-网络选拔赛 题解
1001
1002
题意:给定一个n个点的完全图,边权为lcm(i+1,j+1),求最小生成树。
考虑这样一个构造方法
所有数字都向自身的最小质因数连边
这样可以保证每个数字的贡献都是其本身,达到了理论最小。(lcm一定比自己本身要大)
然后就有了k棵以质数为根的树
然后考虑连接这k棵树
显然质数之间的lcm就是它们的乘积
所以所有根都和2连边即可
考虑计算答案
记为2到n+1的所有素数的和
考虑如何计算tot
这是一个min25模板题,不再赘述
实际上,也可以通过分块打表的方法通过此题。
1003
签到题
显然最后一个用距离出口最近的即可。
1007
题意:给出一个字符串,将其重新排列,使得该字符串的border最大
比较显然的构造是出现次数最多的字母全部放在开头,然后border就是该字母出现的次数
由border的简单性质可知答案不可能比这个大,因此具有正确性
1010
签到题
按照题意模拟即可
1013
题意:给定一个多项式,操作n-1次。第k次操作为令。求操作n-1次后的多项式。
考虑算贡献
显然原多项式的高次项会对最终答案的低次项产生贡献
考虑怎么算xk对xi的贡献
首先贡献系数的话
如果的话显然就是一个NE-Latice-Path问题
贡献系数也就是一个组合数
既然有了系数
那么只需要模拟NE-Latice-Path的计算过程
设一个生成函数#h_k(x)=B_k*x+C_k
把这n-1个单项式乘起来即可得到关于贡献系数的多项式
这一步需要通过类似线段树分治的分治NTT实现
这里一定要注意写的常数小一些
不要采取封装多项式的写法
这里我采用了类似
除此之外还要考虑求导本身产生的系数
简单推导发现对产生的贡献是
整理一下
设:
最终多项式的系数为
求导k次的贡献系数为
发现这是一个下标差为定值的的卷积
是一个经典套路题
翻转数组后即可转化为正常形式的卷积
大力NTT即可
总复杂度
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix