hdu6134 Battlestation Operational【2017多校第八场】
来源:互联网 发布:自学广告设计软件 编辑:程序博客网 时间:2024/05/24 06:57
转载请注明出处,谢谢http://blog.csdn.net/bigtiao097?viewmode=contents
题意:
求f
where
思路:
设
打表找规律能得到
这个式子当时同学打表找规律得到的,等证明出来再来更新
然后由莫比乌斯反演我们可以得到
现在问题转化成了怎么求
一种方法就是分段优化,对于每个n可以
下面介绍怎么正确求
递推法
关于这个递推式可以看一下这里
然后就可以
然后就能
注:下面代码中的f(n)与g(n)正好与上面思路中相反
具体代码如下:
Result:Accepted
#include<bits/stdc++.h>using namespace std;typedef long long ll;const int maxn = 1e6+5;const int mod = 1e9+7;ll sigma[maxn];ll f[maxn];ll g[maxn];ll tau[maxn];ll n,ans,cur;bool vis[maxn];int prime[maxn];int mu[maxn];int tot;void mobius(){ memset(vis,0,sizeof vis); mu[1] = 1; tot = 0; for(int i=2;i<maxn;i++) { if( !vis[i] ){ prime[tot++] = i; mu[i] = -1; } for(int j = 0; j < tot; j++) { if(i * prime[j] >=maxn) break; vis[i * prime[j]] = true; if( i % prime[j] == 0) { mu[i * prime[j]] = 0; break; } else mu[i * prime[j]] = -mu[i]; } }}void init(){ mobius(); for(int i=1;i<maxn;i++) for(int j=i;j<maxn;j+=i) tau[j]++; f[1] = 1; for(int i=2;i<maxn;i++) f[i] = 1+f[i-1]+tau[i-1]; for(int i=1;i<maxn;i++) for(int j=i;j<maxn;j+=i) g[j] = (g[j]+mu[j/i]*f[i]%mod+mod)%mod; for(int i=2;i<maxn;i++) g[i] = (g[i-1]+g[i])%mod;}int main(){ init(); while(~scanf("%lld",&n)) printf("%lld\n",g[n]);}
阅读全文
0 0
- hdu6134 Battlestation Operational【2017多校第八场】
- HDU6134 Battlestation Operational 【莫比乌斯】
- 【HDU6134】Battlestation Operational (莫比乌斯反演)
- 【HDU6134】Battlestation Operational(莫比乌斯反演)
- hdu6134 Battlestation Operational 莫比乌斯反演
- Battlestation Operational(hdu6134 莫比乌斯反演)
- HDU-2017 多校训练赛8-1002-Battlestation Operational
- HDU 6134(2017 多校训练:Battlestation Operational(莫比乌斯反演))
- HDU 6134 Battlestation Operational
- HDU 6134 Battlestation Operational
- HDU 6134 && 2017 多校训练:Battlestation Operational(莫比乌斯反演+积性函数)
- 多校第八场
- 多校第八场
- 多校第八场
- 2017多校八 1002题 hdu 6134 Battlestation Operational 艾弗森约定 莫比乌斯函数 分块
- HDU 6134 Battlestation Operational 2017多校8 莫比乌斯反演
- HDU 6134 Battlestation Operational (mobius +前缀和)
- hdu 6134 Battlestation Operational [反演]【数学】
- daterangepicker
- HDU 6143 Killer Names
- PPTP+L2TP+SSTP+OPENVPN绝对穿透的动态IP 拨号
- Android,安卓,toolbar,menu显示位置
- HDU 6136 Death Podracing(优先队列+循环链表)
- hdu6134 Battlestation Operational【2017多校第八场】
- java数据结构与算法-堆
- FFmpegFrameRecorder
- 编写一个程序,打印输入中各个字符出现频度的直方图
- html 布局小技巧
- 816
- ADF中解析 EL 表达式
- 大文件分块上传第三弹(分块并发上传)
- STM32延时注意事项