bzoj 4916 神犇和蒟蒻
来源:互联网 发布:新手怎么做淘宝分销 编辑:程序博客网 时间:2024/06/05 04:49
//bzoj 4916 神犇与蒟蒻 #include<map>#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>#define N 10000000#define ll long long#define M(a) memset(a,0,sizeof a)#define fo(i,j,k) for(i=j;i<=k;i++)const int mxn=10000005;const int mod=1e9+7;using namespace std;map <int,int> mp;bool vis[mxn];ll phi[mxn];ll inv2,inv6;int m,T,pri[mxn];inline ll ksm(ll x,int k){if(k==1) return x;ll tmp=ksm(x,k>>1);if(k&1) return tmp*tmp%mod*x%mod;return tmp*tmp%mod;}inline void init(){int i,j;puts("1");phi[1]=1;inv2=500000004;inv6=166666668;fo(i,2,N){if(!vis[i]) pri[++pri[0]]=i,phi[i]=i-1;for(j=1;j<=pri[0] && (ll)i*pri[j]<=N;j++){vis[i*pri[j]]=1;if(i%pri[j]==0){phi[i*pri[j]]=phi[i]*pri[j]%mod;break;}phi[i*pri[j]]=phi[i]*(pri[j]-1)%mod;}}fo(i,1,N) phi[i]=phi[i]*i%mod;fo(i,1,N) phi[i]=(phi[i]+phi[i-1])%mod;}inline ll S(ll x) {return (x*(x+1)%mod*inv2)%mod;} inline ll solve(ll n){int i,j;if(n<=N) return phi[n];if(mp.count(n)) return mp[n];ll now=n*(n+1)%mod*(n+n+1)%mod*inv6%mod,sum=0;for(int i=2,last=0;i<=n;i=last+1){last=n/(n/i);sum=(sum+((S(last)-S(i-1)+mod))%mod*solve(n/i)%mod)%mod;}mp[n]=(now-sum+mod)%mod;return (now-sum+mod)%mod;}int main(){int i,j;ll x;init();scanf("%lld",&x);printf("%lld\n",solve(x));return 0;}
4916: 神犇和蒟蒻
Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 82 Solved: 50
[Submit][Status][Discuss]
Description
很久很久以前,有一只神犇叫yzy;
很久很久之后,有一只蒟蒻叫lty;
Input
请你读入一个整数N;1<=N<=1E9,A、B模1E9+7;
Output
请你输出一个整数A=\sum_{i=1}^N{\mu (i^2)};
请你输出一个整数B=\sum_{i=1}^N{\varphi (i^2)};
Sample Input
1
Sample Output
1
1
1
HINT
Source
By Monster_Yi
【分析】
杜教筛...第一次做...也不知道怎么回事
https://www.baidu.com/link?url=DrLxnCCPgy4onbGkvRUycEW8dKwWsR7J6Rclh8v1eMr9JwPg9zEZpBbIRYfQrn6c24_hNlYRJhErM3Ms7DEvZwjR1SS8GzP-lXWwVKgaLoK&wd=&eqid=9d6f2517000c3d1400000003592f703f
【代码】
阅读全文
1 0
- bzoj 4916 神犇和蒟蒻
- BZOJ 4916 神犇和蒟蒻
- bzoj 4916: 神犇和蒟蒻
- BZOJ 4916: 神犇和蒟蒻 杜教筛 数学
- [杜教筛] BZOJ 4916 神犇和蒟蒻
- bzoj 4916: 神犇和蒟蒻 杜教筛
- BZOJ 4916 神犇和蒟蒻(杜教筛)
- bzoj 1303 |前缀和
- BZOJ 4636: 蒟蒻的数列
- BZOJ 4636 蒟蒻的数列
- BZOJ蒟蒻百年挖坑计划
- BZOJ-2337-XOR和路径
- bzoj 3398 牡牛和牝牛
- bzoj 2257 瓶子和燃料
- BZOJ 1218 二维前缀和
- bzoj 2956: 模积和
- [BZOJ]1056 和 1862 splay
- [BZOJ ]
- PB9.0无法连接SQL Server数据库
- 汇编语言:在以GRADE为首地址的数组中存放着某班某门课30个学生的成绩。试编写一完整汇编语言程序实现:统计小于60分,60~89分和大于等于90分的学生人数,统计结果分别存放在LOWNUM、MIDD
- 安卓桌面图标对应的尺寸
- mybatis多数据源配置
- LeetCode 383. Ransom Note
- bzoj 4916 神犇和蒟蒻
- CMAKE的常见命令合集
- org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Can
- 217. Contains Duplicate
- 71. Simplify Path
- java中的排序!
- ubuntu16.04+cuda8.0+opencv3.1+GTX1080配置caffe
- CSS盒子模型
- Password Management:Password in Configuration File(密码在配置文件中)解决方案