图的遍历。
设 i 怪最终被打了 ci|ci≡ai(modk),则答案为 ∑i=1nmax(ci−ci−1,0)。
有结论:∀i,−k<ci−ci−1<k。
(证明:若 ci−ci−1≥k,那将 ci←ci−k 满足结论,此时 ci−ci−1 减少 k,而 ci+1−ci 至多增加 k,不会变劣)
于是每个 ci−ci−1 只会有两种取值 Ai<0,Bi>0,考虑对每一位选择 Ai 或 Bi,
同时需要保证每段前缀选择的数之和(即为 ci)非负。
从前往后依次选择,能选 Ai 就选 Ai(贡献为 0),否则考虑:
堆维护之。
枚举 gcdi∈Sai=k,考虑对每个 k 算 gcdi∈Sai=k 的 S 的个数 fk。
fi 不好算,设 gk 表示 k|gcdi∈Sai 的 S 的个数,设 si 表示原序列中 i 的倍数的个数,
则 gk 等于从 k 的倍数中任选非空子集的方案数,即 gk=2sk−1。
设 ci 表示原序列中 i 的出现次数,则 si=∑i|dcd,平凡狄利克雷后缀和。
而 gi=∑i|dfd,求出 gi 后平凡狄利克雷后缀差分得到 fi。
此时枚举 gcdi∈Sai=k,需要统计 ax⊥k 的 x 的的个数 hk。
设 m=107,直接推柿子:
hk=∑i=1mci[gcd(i,k)=1]=∑i=1mci∑d|gcd(i,k)μ(d)=∑d|kμ(d)∑d|ici=∑d|kμ(d)sd
把序列 μ(d)sd 求出来,狄利克雷前缀和即可。
传奇 5k 预言四个月后的回旋镖恩情还不完
这个东西能干啥?
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具