bzoj4916 神犇和蒟蒻
求μ\mu的不用说了。
构造和式
\sum_{i=1}^n\sum_{d|i}\varphi(d)*d*\frac i d
一方面 上式=∑ni=1i2\text{上式}=\sum_{i=1}^ni^2。
另一方面, 上式=∑nx=1x∑⌊nx⌋d=1φ(d)∗d\text{上式} =\sum_{x=1}^n x\sum_{d=1}^{\lfloor\frac n x \rfloor} \varphi(d)*d
而我们又知道 φ(i2)=i∗φ(i)\varphi(i^2)=i*\varphi(i)
因此不难杜教筛了。
#include<cstdio>
#include<algorithm>
using namespace std;
#define LL long long
const int p=1000000007,mod=1000007,maxn=1000000,inv=166666668;
int vis[maxn],prm[maxn],phi[maxn],sum[maxn];
struct hash
{int fir[maxn+10],ne[maxn+10],val[maxn+10],ans[maxn+10],tot;int find(int n){for (int i=fir[n%mod];i;i=ne[i])if (val[i]==n) return ans[i];return -1;}void ins(int n,int x){int y=n%mod;tot++;ne[tot]=fir[y];fir[y]=tot;val[tot]=n;ans[tot]=x;}
}h;
int inc(int x,int y)
{x+=y;return x>p?x-p:x;
}
int dec(int x,int y)
{x-=y;return x<0?x+p:x;
}
int solve(int n)
{if (n<=maxn) return sum[n];int ret=h.find(n);if (ret!=-1) return ret;ret=(LL)n*(n+1)%p*(2*n+1)%p*inv%p;for (int i=2,j;i<=n;i=j+1){j=n/(n/i);ret=dec(ret,(LL)(i+j)*(j-i+1)/2*solve(n/i)%p);}h.ins(n,ret);return ret;
}
int main()
{int tot=0,n;sum[1]=1;for (int i=2;i<=maxn;i++){if (!vis[i]){prm[++tot]=i;phi[i]=i-1;}for (int j=1;j<=tot&&(LL)i*prm[j]<=maxn;j++){vis[i*prm[j]]=1;if (i%prm[j]) phi[i*prm[j]]=phi[i]*(prm[j]-1);else{phi[i*prm[j]]=phi[i]*prm[j];break;}}sum[i]=inc(sum[i-1],(LL)i*phi[i]%p);}scanf("%d",&n);printf("1\n%d\n",solve(n));
}
bzoj4916 神犇和蒟蒻相关推荐
- bzoj4916: 神犇和蒟蒻(杜教筛)
Description 很久很久以前,有一只神犇叫yzy; 很久很久之后,有一只蒟蒻叫lty; Input 请你读入一个整数N;1<=N<=109,A.BN;1<=N<=10^ ...
- 【BZOJ4916】神犇和蒟蒻(杜教筛)
[BZOJ4916]神犇和蒟蒻(杜教筛) https://www.cnblogs.com/cjyyb/p/8297338.html 杜教筛技巧
- 【bzoj4916】神犇和蒟蒻 杜教筛
题目描述 很久很久以前,有一只神犇叫yzy; 很久很久之后,有一只蒟蒻叫lty; 输入 请你读入一个整数N;1<=N<=1E9,A.B模1E9+7; 输出 请你输出一个整数A=\sum_{ ...
- 【BZOJ4916】神犇与蒟蒻
题面 Description 很久很久以前,有一只神犇叫yzy; 很久很久之后,有一只蒟蒻叫lty; Input 请你读入一个整数N;\(1<=N<=10^9\),A.B模\(10^9+7 ...
- [BZOJ 4916]神犇和蒟蒻
传送门 Description \[ sum_G(n)=\sum_{i=1}^n \mu(i^2)\\sum_F(n)=\sum_{i=1}^n \phi(i^2) \] Solution For a ...
- BZOJ 4916 神犇和蒟蒻
题目链接 https://lydsy.com/JudgeOnline/problem.php?id=4916 题解 ∑i=1Nμ(i2)=1∑i=1Nφ(i2)=∑i=1Niφ(i) \sum_{i= ...
- 这是蒟蒻,勾搭神犇.
这是SD 莱芜一中的蒟蒻,勾搭神犇.目标NOIP.这个博客最主要的一个目的是求大神们一起玩♂耍,欢迎大家留言. DQS学长给我加了友情链接,这个博客的确要好好搞一搞了.老师说整理博客是一件好事,可是我 ...
- 蒟蒻的python 学习笔记 ——北京理工大学嵩天mooc(有时间就看就更新,尽量让笔记容易懂,蟹蟹各位大神不吝赐教)
蒟蒻的python 学习笔记 前言 课一:python语言程序设计 第一周:python 基本语法元素 1.1 程序设计基本方法 1.2 python 环境配置 1.3 实例1:温度转换 1.4 py ...
- cogs 1656. 膜拜神犇
1656. 膜拜神犇 ★☆ 输入文件:trioxorz.in 输出文件:trioxorz.out 简单对比 时间限制:0.5 s 内存限制:128 MB [题目描述] bigmingo ...
最新文章
- DeepChem | 基于图卷积预测分子的溶解度
- 开发日记-20190618 关键词 读书笔记《鸟哥的Linux私房菜-基础学习篇》
- json数据 提示框flash.now[:notice] flash.now[:alert]
- JDK1.8 stream详解(转)
- neo4j java label_Neo4j:在具有相同Label的两个或多个节点之间创建关系
- 纪中2019(上)游记+总结
- Congratulations! A Success Case on GDPR
- 如何测试网站服务器mysql数据库连接,如何测试网站服务器mysql数据库
- MATLAB数值计算函数汇总
- cissp认证考试指南_如何通过CISSP考试(信息安全认证)
- ASP.NET Core 和 EF Core 系列教程——入门
- Python爬虫(二)——urllib库,Post与Get数据传送区别,设置Headers,urlopen方法,简单爬虫
- 中学关于计算机方面的课题研究,《多媒体信息技术与初中生物教学的整合》课题研究方案...
- 前端三件套之CSS(二)
- Koo叔说Shader—果冻效果
- 基于阿里云的应用系统三级等保1.0测评总结
- Seaborn调色板设置
- [重点]C语言——数组
- 使用DBLINK查询时报ORA-00600: internal error code, arguments: [kzdlk_zt2 err]
- python登录系统账号检测_一种基于python的惠普打印机默认用户名密码检测方法与流程...
热门文章
- 【数据库笔记】(一)数据库模式
- DW1000 学习笔记1 - 概述简报
- PMP项目管理证书(2016年06月)
- vue向list中添加数据_vue点击添加数据 - osc_sjg81se7的个人空间 - OSCHINA - 中文开源技术交流社区...
- 怎样测量地图上曲线的长度_用于测量地图曲线长度的米尺的制作方法
- JavaScript typeof 判断数据类型
- 从零开始搭建uni-app框架的小程序开发环境
- 三个sata硬盘只能读取两个_电脑装了两个硬盘有一个读不出来是SATA接口的
- 【EXCEL简单考勤】
- 电力-故障录波(向量图)