首先根据题意,我们可以发现,两个野人 i,j 会处在一个山洞当且仅当存在 x 满足 Ci+xPi≡Cj+xPj (modM) (M 为山顶数,x 为年数)当然,野人在 Li 年后会死亡,故当最小正整数解 x>Li 且 x>Lj 时,其实是不满足两个野人处在一个山洞的。那么本题要求的是没有两个野人会处在同一个山洞,即要找到最小的 M 满足对于任意的 i,j,要么满足 Ci+xPi≡Cj+xPj (modM) 无解,要么满足 Ci+xPi≡Cj+xPj (modM) 的最小解 >min{Li,Lj}。
我们现在的问题就是解决 Ci+xPi≡Cj+xPj (modM) 这个式子,我们考虑把式子变换一下,xPi−xPj≡Cj−Ci (modM),x(Pi−Pj)≡Cj−Ci (modM),x(Pi−Pj)+yM=Cj−Ci。
这个是非常经典的问题,我们考虑使用扩展欧几里得来解决。
不会可以看 我的博客。
题目说明了输入数据保证有解,且 M 不大于106。故我们考虑暴力枚举 M 然后 n2 暴力枚举 i,j 判断是否成立。最后最坏复杂度:O(106×n2×log(max{Pi,M}),但是考虑到根本卡不满,所以可以过。
还有一个小坑就是 M 一定 ≥max{Ci}。
code
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧