[BZOJ4916]神犇(Monster_Qi)和蒟蒻(SWHsz)
很久很久以前,有一只神犇叫Monster_Qi;
很久很久之后,有一只蒟蒻叫SWHsz;
1<=N<=1E9,A、B模1E9+7;
求这个。
求μ的话直接输出1就行了因为除了1的平方外都有平方因子。
求φ的话就有个显而易见的结论就是\(φ(n^2)=φ(n)n\),列出φ的一般式就行了。
然后就是套杜教筛的模板了。
要凑 \(f \cdot g=h\)
$ h(i)=\sum _{d|i} φ(d)dg(i/d) \(
显而易见的,g是\)id\(函数,\)h(i)=i^2$
然后随便搞了。
#include <iostream>
#include <cstdio>
#include <map>
using namespace std;
map<long long,long long>mp;
long long n;
const int N = 10000005,NI2=500000004,NI6=166666668,mod=1e9+7;
long long ph[N],prime[N],cnt;
bool vis[N];
void phhh() {
ph[1]=1;
for(int i=2; i<=N-5; i++) {
if(!vis[i]) prime[++cnt]=i,ph[i]=i-1;
for(int j=1; j<=cnt; j++) {
if(i*prime[j]<=N-5) vis[i*prime[j]]=1;else break;
if(i%prime[j]==0){ph[i*prime[j]]=ph[i]*prime[j];break;}
else ph[i*prime[j]]=ph[i]*ph[prime[j]];
}
}
for(int i=1;i<=N-5;i++) ph[i]=(ph[i]*i+ph[i-1])%mod;
}
long long solve(long long x) {
if(N-5>=x) return ph[x];
if(mp.count(x)) return mp[x];
long long ans=x*((x+1)%mod)%mod*((2*x%mod+1)%mod)%mod*NI6%mod;
for(long long i=2,nxti;i<=x;i=nxti+1) {
nxti=x/(x/i);
ans=(ans-(nxti+i)%mod*(nxti-i+1ll)%mod*NI2%mod*solve(x/i))%mod;
}
return mp[x]=(ans+mod)%mod;
}
int main() {
phhh();
scanf("%lld",&n);
printf("1\n%lld",solve(n));
}
[BZOJ4916]神犇(Monster_Qi)和蒟蒻(SWHsz)的更多相关文章
- BZOJ4916: 神犇和蒟蒻【杜教筛】
Description 很久很久以前,有一只神犇叫yzy; 很久很久之后,有一只蒟蒻叫lty; Input 请你读入一个整数N;1<=N<=1E9,A.B模1E9+7; Output 请你 ...
- BZOJ4916 神犇和蒟蒻 【欧拉函数 + 杜教筛】
题目 很久很久以前,有一只神犇叫yzy; 很久很久之后,有一只蒟蒻叫lty; 输入格式 请你读入一个整数N;1<=N<=1E9,A.B模1E9+7; 输出格式 请你输出一个整数A=\sum ...
- LG4213 【模板】杜教筛(Sum)和 BZOJ4916 神犇和蒟蒻
P4213 [模板]杜教筛(Sum) 题目描述 给定一个正整数$N(N\le2^{31}-1)$ 求 $$ans_1=\sum_{i=1}^n\varphi(i)$$ $$ans_2=\sum_{i= ...
- BZOJ4916 神犇和蒟蒻(欧拉函数+杜教筛)
第一问是来搞笑的.由欧拉函数的计算公式容易发现φ(i2)=iφ(i).那么可以发现φ(n2)*id(n)(此处为卷积)=Σd*φ(d)*(n/d)=nΣφ(d)=n2 .这样就有了杜教筛所要求的容易算 ...
- Bzoj4916: 神犇和蒟蒻
题面 传送门 Sol 第一问puts("1") 第二问,\(\varphi(i^2)=i\varphi(i)\) 设\(\phi(n)=\sum_{i=1}^{n}i\varphi ...
- BZOJ4916: 神犇和蒟蒻(杜教筛)
题意 求 $$\sum_{i = 1}^n \mu(i^2)$$ $$\sum_{i = 1}^n \phi(i^2)$$ $n \leqslant 10^9$ Sol zz的我看第一问看了10min ...
- [BZOJ4916]神犇和蒟蒻 杜教筛/Min_25筛
题目大意: 给定\(n\le 10^9\),求: 1.\(\sum_{i=1}^n\mu(i^2)\) 2.\(\sum_{i=1}^n\varphi(i^2)\) 解释 1.\(\sum_{i=1} ...
- 【BZOJ4916】神犇和蒟蒻(杜教筛)
[BZOJ4916]神犇和蒟蒻(杜教筛) 题面 BZOJ 求 \[\sum_{i=1}^n\mu(i^2)\ \ 和\ \sum_{i=1}^n\phi(i^2)\] 其中\[n<=10^9\] ...
- 【BZOJ4916】神犇和蒟蒻 解题报告
[BZOJ4916]神犇和蒟蒻 Description 很久很久以前,有一群神犇叫sk和ypl和ssr和hjh和hgr和gjs和yay和xj和zwl和dcx和lyy和dtz和hy和xfz和myh和yw ...
随机推荐
- [bzoj1606][Usaco2008 Dec]Hay For Sale 购买干草_动态规划_背包dp
Hay For Sale 购买干草 bzoj-1606 Usaco-2008 Dec 题目大意:约翰遭受了重大的损失:蟑螂吃掉了他所有的干草,留下一群饥饿的牛.他乘着容量为C(1≤C≤50000)个单 ...
- POJ 1966
求的是无向图的点连通度.开始便想到网络流,既然选的是点,当然就要拆点加边了.但无论如何也不敢往枚举源汇点的方向想,因为网络流复习度很高.看看网上大牛的,都是枚举,再看数据,原来N才50个点,枚举无压力 ...
- BAT常问问题总结以及回答(多线程回答一)
多线程 什么是线程? 进程概念:进程是指运行中的应用程序,每个进程都有自己独立的地址空间(内存空间),比如用户点击桌面的IE浏览器,就启动了一个进程,操作系统就会为该进程分配独立的地址空间.当 ...
- PHP图像操作类
基于已给出的各种图像操作方法,这里我总结出了PHP图像操作的一个类,包含给图像加入文字水印.图像水印和压缩图片. 读者可自行加入功能. <? php class Image { private ...
- 设备树学习之(一)GPIO中断【转】
本文转载自:http://blog.csdn.net/lizuobin2/article/details/54563587 开发板:tiny4412SDK + S702 + 4GB Flash 要移植 ...
- Linux VGA驱动移植实验【转】
本文转载自:http://m.blog.csdn.net/bzw73/article/details/46564275 有了前面的LCD驱动的框架,再移植VGA驱动就相当的容易了.默认在光盘中已经支持 ...
- 2014.9.20Hashtable概述
hashtable叫哈希表,用于表示键值的集合,这些键值对根据键的哈希代码进行组织,其每个元素都存储于DictionaryEntry对象中的键值对.键不能为空引用. count:获取包含在hashta ...
- [源码管理] Windows下搭建SVN服务器
前文所述SVN客户端使用的时候,用的SVN服务器通常为外部,例如Google Code的服务器,不过,做为一个程序开发人员,就算自己一个人写程序,也应该有一个SVN版本控制系统,以便对开发代码进行有效 ...
- MyBatis输出执行的SQL到控制台
src\main\resources\application.properties 或者src\main\resources\application.yml 在你的application.proper ...
- Python笔记(十一)——数据抓取例子
上班时候想看股票行情怎么办?试试这个小例子,5分钟拉去一次股票价格,预警: #coding=utf-8 import re import urllib2 import time import thre ...