hdu 6134 Battlestation Operational 莫比乌斯反演
来源:互联网 发布:java 技术架构 编辑:程序博客网 时间:2024/06/11 06:44
题目链接点这里
#include<bits/stdc++.h>using namespace std;#define INF 0x3f3f3f3f#define INFLL 0x3f3f3f3f3f3f3f3f#define FIN freopen("in.txt","r",stdin);#define mem(x,y) memset(x,y,sizeof(x));typedef unsigned long long ULL;typedef long long LL;#define fuck(x) cout<<x<<endl;#define lson l,m,rt<<1#define rson m+1,r,rt<<1|1typedef pair<pair<int, int>, int> PIII;typedef pair<int, int> PII;const double eps = 1e-8;const double PI = acos(-1);const int P = 1e9 + 7;const int MX = 2e6 + 5;int n, L;bool isprime[MX];int prime[MX], mu[MX] = {0, 1};LL pre[MX];LL preu[MX];void mubi(){ memset(isprime, true, sizeof(isprime)); int primecount = 0; for (int i = 2; i < MX; ++i) { if (isprime[i]) { prime[++primecount] = i; mu[i] = -1; } for (int j = 1; j <= primecount && i * prime[j] < MX; ++j) { isprime[i * prime[j]] = false; if (i % prime[j] == 0) { mu[i * prime[j]] = 0; break; } else mu[i * prime[j]] = -mu[i]; } } memset(pre, 0, sizeof(pre)); for (int i = 1; i < MX; i++) { pre[i]++; pre[i + 1]--; for (int j = 2; j * i <MX; j++) { pre[j * i + 1] = (pre[j * i + 1] - j + P) % P; pre[j * i - i + 1] = (pre[j * i - i + 1] + j) % P; } } for (int i = 1; i < MX; i++)pre[i] = (pre[i] + pre[i - 1] + P) % P; for (int i = 1; i < MX; i++)pre[i] = (pre[i] + pre[i - 1] + P) % P; preu[0] = 0; for (int i = 1; i < MX; i++)preu[i] = (preu[i - 1] + mu[i] + P) % P;}int main(){ mubi(); FIN; while (cin >> n) { LL ans = 0; int t = (int)sqrt(n); for (int i = 1; i <= min(t, n); i++) { ans = (ans + mu[i] * pre[n / i]) % P; } t = n / t; for (int i = t - 1; i >= 1; i--) { int r = n / i; int l = n / (i + 1); LL sum = (P + preu[r] - preu[l]) % P; ans = (ans + sum * pre[i]) % P; } printf("%lld\n", ans); } return 0;}
阅读全文
2 0
- hdu 6134 Battlestation Operational 莫比乌斯反演
- HDU 6134 Battlestation Operational(积性函数+莫比乌斯反演)
- hdu 6134 Battlestation Operational (莫比乌斯反演+线性筛法+差分)
- HDU 6134 Battlestation Operational(莫比乌斯反演+线性筛)
- HDU 6134 Battlestation Operational 莫比乌斯反演 + 数学推导
- HDU 6134(2017 多校训练:Battlestation Operational(莫比乌斯反演))
- HDU 6134 Battlestation Operational 2017多校8 莫比乌斯反演
- 【HDU6134】Battlestation Operational (莫比乌斯反演)
- 【HDU6134】Battlestation Operational(莫比乌斯反演)
- 解题报告:HDU_6134:Battlestation Operational (莫比乌斯反演)
- hdu6134 Battlestation Operational 莫比乌斯反演
- Battlestation Operational(hdu6134 莫比乌斯反演)
- HDU 6134 Battlestation Operational-莫比乌斯
- HDU 6134 && 2017 多校训练:Battlestation Operational(莫比乌斯反演+积性函数)
- HDU 6134 Battlestation Operational(基本数论+莫比乌斯反演)——2017 Multi-University Training Contest
- HDU6134 Battlestation Operational 【莫比乌斯】
- hdu 6134 Battlestation Operational [反演]【数学】
- hdu 6134 Battlestation Operational mobius反演
- NeoVim/SpaceVim初体验
- 双系统下ubuntu系统扩容
- PCL:从深度图(pcd文件)中提取NARF关键点
- PHP大法
- Lua 取整,取余
- hdu 6134 Battlestation Operational 莫比乌斯反演
- 【Python入门之一】list操作方法
- ArrayList实现
- DM8148从DSP侧发送Frames流到A8侧程序配置
- mfs分布式存储搭建(二)
- chrome jsonView插件安装
- 直接选择排序
- HDU 6084 寻找母串(卡特兰数)
- mac下环境变量