2021年ACM竞赛班训练(三)
1|02021年ACM竞赛班训练(三)
1|1A题 验证哥德巴赫猜想
请移步验证哥德巴赫猜想
1|2B题 路径
请移步路径
1|3C题 组合数
思路
- 预处理组合数:
和的范围均在以内, 可以采用的算法预处理所有的组合数.
求解组合数的几种算法详见组合数 - 预处理二维前缀和:
由于多组测试数据, 仅仅预处理出组合数是不够的, 必须预处理所有的结果, 这样对于每次询问都达到
运用动态规划的思想(也可以理解为二维前缀和):
状态表示:
: 中满足整除的集合
属性: 数量
状态计算:
: 中满足整除的集合
: 中满足整除的集合
以上两部分有重合:
: 中满足整除的集合
得到递推式:
代码
1|4E题 a math problem(hard version)
思路:
范围均在, 暴力枚举肯定会超时.
应用容斥原理(原理详见:容斥原理)
对于每个数, 我们对其分解质因数, 分解得到, 共计个质因数, 问题转化为:
的所有数中, 有多少数能够至少被这个质数中的一个整除.(详见容斥原理中的例题)
那么解决该问题只需两步即可:
- 将分解质因数
- 分别对区间和应用容斥原理, 结果相减即可.
代码
为什么这样做不会超时:
25以内的质数(9个):
2 3 5 7 11 13 17 19 23
它们的乘积:
即对于任意的 :不会超过个不同的质因子
即:应用容斥原理时最多有个集合,总共需要枚举的集合的组合方式有种
对于每种组合方式, 我们枚举二进制的每一位时, 最多有位
即时间复杂度大概在
1|5F题: 矩阵变换
思路
题目数据范围不大, 直接根据题意模拟即可
代码
__EOF__

本文作者:lhqwd
本文链接:https://www.cnblogs.com/lhqwd/p/14637530.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文链接:https://www.cnblogs.com/lhqwd/p/14637530.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗