华中农业大学第十三届程序设计竞赛
B
syh 喜欢猫猫,所以 zzy 为了哄 syh 睡觉,决定扮成猫猫。
给定一个长为
如果这个问题的答案能够被正确解出,zzy 就会学猫叫。由于 zzy 正在学怎么学猫叫,所以请你告诉 syh 这个问题的答案。
赛时想到枚举
将因子
在枚举因子
看了看榜一佬的思想,他把
之后就是类似于我们赛事的那个容斥思想了 (
#include <bits/stdc++.h> using namespace std; using LL = long long; const int N = 1E5 + 5; const int mod = 1E9 + 7; int n; int num[N]; int f[N]; void solve() { cin >> n; LL x , y , z; cin >> x >> y >> z; for (int i = 1 ; i <= n ; ++i) { int ai; cin >> ai; (num[ai] += ai) %= mod; } for (int i = 1 ; i < N ; ++i) { for (int j = i ; j < N ; j += i) { (f[i] += num[j]) %= mod; } } for (int i = N - 1 ; i >= 1 ; --i) { f[i] = 1LL * f[i] * f[i] % mod; for (int j = i + i ; j < N ; j += i) { f[i] -= f[j]; f[i] = (f[i] % mod + mod) % mod; } } LL ans = 0; for (int i = 1 ; i < N ; ++i) { ans += 1LL * f[i] * ((x * i + y) / z) % mod; ans %= mod; } cout << ans << '\n'; } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int T = 1; while (T--) { solve(); } return 0; }
本文作者:xqy2003
本文链接:https://www.cnblogs.com/xqy2003/p/18134363
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
蒟蒻一枚 坐标山西大学
欢迎你的到来(??);
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步