CodeForces839D[莫比乌斯反演] Codeforces Round #428 (Div. 2)
/*CodeForces839D[莫比乌斯反演]*/
#include <bits/stdc++.h>
typedef long long LL;
const LL MOD = 1000000007LL;
using namespace std;
int n, maxa = , mina = 0x3f3f3f3f;
LL m[], F[], f[];
int sum[], a[];
int prime[], vis[], mu[];
void mo_init(int N) {
memset(vis, , sizeof(vis));
mu[] = ;
int cnt = ;
for (int i = ; i < N; i++)
{
if (!vis[i])
{
prime[cnt++] = i;
mu[i] = -;
}
for (int j = ; j < cnt && i * prime[j] < N; j++)
{
vis[i * prime[j]] = ;
if (i % prime[j]) mu[i * prime[j]] = -mu[i];
else
{
mu[i * prime[j]] = ;
break;
}
}
}
}
void solve() {
for (int i = ; i < n; i++) {
for (int j = ; j * j <= a[i]; j++) {
if (a[i] % j == ) {
if (j * j == a[i]) {
sum[j]++;
}
else {
sum[j]++, sum[a[i] / j]++;
}
}
}
}
LL ans = ;
for (int i = ; i <= maxa; i++) {
F[i] = sum[i] * m[sum[i] - ] % MOD;
}
for (int i = ; i <= maxa; i++) {
for (int j = i; j <= maxa; j += i) {
f[i] = (f[i] + mu[j / i] * F[j] % MOD) % MOD;
}
ans = (ans + f[i] * i % MOD) % MOD;
}
printf("%lld\n", ans);
}
void init() {
mo_init();
m[] = 1LL;
for (int i = ; i <= n; i++) {
m[i] = m[i - ] * 2LL % MOD;
}
}
int main() {
scanf("%d", &n);
for (int i = ; i < n; i++) {
scanf("%d", &a[i]);
maxa = max(maxa, a[i]);
mina = min(mina, a[i]);
} init(), solve();
return ;
}
CodeForces839D[莫比乌斯反演] Codeforces Round #428 (Div. 2)的更多相关文章
- CodeForces 839D - Winter is here | Codeforces Round #428 (Div. 2)
赛后听 Forever97 讲的思路,强的一匹- - /* CodeForces 839D - Winter is here [ 数论,容斥 ] | Codeforces Round #428 (Di ...
- CodeForces 839C - Journey | Codeforces Round #428 (Div. 2)
起初误以为到每个叶子的概率一样于是.... /* CodeForces 839C - Journey [ DFS,期望 ] | Codeforces Round #428 (Div. 2) */ #i ...
- CodeForces 839B - Game of the Rows | Codeforces Round #428 (Div. 2)
血崩- - /* CodeForces 839B - Game of the Rows [ 贪心,分类讨论] | Codeforces Round #428 (Div. 2) 注意 2 7 2 2 2 ...
- Codeforces Round #428 (Div. 2) 题解
题目链接:http://codeforces.com/contest/839 A. Arya and Bran 题意:每天给你一点糖果,如果大于8个,就只能给8个,剩下的可以存起来,小于8个就可以全部 ...
- Codeforces Round #428 (Div. 2) D. Winter is here 容斥
D. Winter is here 题目连接: http://codeforces.com/contest/839/problem/D Description Winter is here at th ...
- Codeforces Round #428 (Div. 2)E. Mother of Dragons
http://codeforces.com/contest/839/problem/E 最大团裸题= =,用Bron–Kerbosch算法,复杂度大多博客上没有,维基上查了查大约是O(3n/3) 最大 ...
- 【Codeforces Round #428 (Div. 2) B】Game of the Rows
[Link]:http://codeforces.com/contest/839/problem/B [Description] 给你n排的如题目所示的位置; 同一排中(1,2) 算相邻; (3,4) ...
- 【Codeforces Round #428 (Div. 2) C】Journey
[Link]:http://codeforces.com/contest/839/problem/C [Description] 给一棵树,每当你到一个点x的时候,你进入x的另外一每一个出度的概率都是 ...
- Codeforces Round #428 (Div. 2)A,B,C
A. Arya and Bran time limit per test 1 second memory limit per test 256 megabytes input standard inp ...
随机推荐
- Ubuntu下apt-get与pip安装命令的区别
在ubuntu服务器下安装包的时候,经常会用到sudo apt-get install 包名 或 sudo pip install 包名,那么两者有什么区别呢? 1.区别pip用来安装来自PyPI(h ...
- 关于火狐浏览器在ubuntu和安卓手机上的同步
最近在ubuntu使用火狐浏览器,感觉还不错.我想着,如果在我的安卓手机上装一个火狐浏览器,我就可以在手机上查看电脑上所收藏的网站了.然后我就去安卓应用市场下载了最新版的火狐浏览器.令人奇怪的是,我在 ...
- WINDOWS-基础:SafeArray的使用方法
1 SafeArray的作用 使用SafeArray SafeArray是VB中的数组存储方式.通过SafeArray,可以在VC++和VB间相互调用. SafeArray也是Automation中的 ...
- CPP-网络/通信:gsoap 的教程和使用
1.1.1 gSOAP 1.1.1 .1 简介 gSOAP 编译工具提供了一个 SOAP/XML 关于 C/C++ 语言的实现,从而让 C/C++ 语言研发 web 服务或客户端程式 ...
- java中插入myslq的datetime类型的
java.util.Date d = new java.util.Date(); Timestamp tt=new Timestamp(d.getTime()); ps.setTimestamp(4, ...
- (转发)IOS高级开发~Runtime(二)
一些公用类: @interface ClassCustomClass :NSObject{ NSString *varTest1; NSString *varTest2; NSString *varT ...
- ES6_Promise 对象 阮一锋
Promise的含义 promise是异步编程的一种解决方法,比传统的回调函数和事件更合理更强大.他由社区最早提出和实现,ES6将其写进语言标准,统一了用法,原生提供了promise对象.所谓prom ...
- LeetCode_6
问题: 6. Z字形变换 链接:https://leetcode-cn.com/problems/zigzag-conversion/description/ 分析: A 仿真方法 直接模拟整个过程, ...
- 【android】6大布局
线性布局 相对布局 绝对布局 网格布局 表格布局 帧布局
- CUB reduce errorinvalid configuration argument
解决CUB reduce errorinvalid configuration argument问题 在写TensorFlow代码时遇到报错 CUB reduce errorinvalid confi ...