【BZOJ4176】 Lucas的数论
Description
去年的Lucas非常喜欢数论题,但是一年以后的Lucas却不那么喜欢了。

Input
第一行一个整数n。
Output
一行一个整数ans,表示答案模1000000007的值。
Sample Input
Sample Output
HINT
对于100%的数据n <= 10^9。
Solution
因为直接用编辑器打公式比较麻烦且丑,就用markdown截图完传图片了= =b。
Code
#include <cstdio>
#include <cmath> #define R register
const int mod = 1e9 + ;
#define maxn 1500010
int miu[maxn], smiu[maxn], pr[maxn / ], prcnt, lim, N;
bool vis[maxn];
int hash[maxn];
bool vihash[];
int Miu(R int n)
{
if (n <= lim) return smiu[n];
if (vihash[N / n]) return hash[N / n]; vihash[N / n] = ;
R int ret = ;
for (R int i = , j; i <= n; i = j + )
{
j = n / (n / i);
(ret += mod - 1ll * (j - i + ) * Miu(n / i) % mod) %= mod;
}
return hash[N / n] = ret;
}
inline int sumf(R int n)
{
R int ret = ;
for (R int i = , j; i <= n; i = j + )
{
j = n / (n / i);
ret = (ret + 1ll * (j - i + ) * (n / i)) % mod;
}
return ret;
}
int main()
{
scanf("%d", &N);
lim = (int) pow(N * 1.0, 0.666);
// printf("%d\n", lim);
miu[] = smiu[] = ;
for (R int i = ; i <= lim; ++i)
{
if (!vis[i]) pr[++prcnt] = i, miu[i] = -;
smiu[i] = (smiu[i - ] + miu[i]) % mod;
for (R int j = ; j <= prcnt && 1ll * i * pr[j] <= lim; ++j)
{
vis[i * pr[j]] = ;
if (i % pr[j]) miu[i * pr[j]] = -miu[i];
else
{
miu[i * pr[j]] = ;
break;
}
}
}
R int ans = , last = ;
for (R int i = , j; i <= N; i = j + )
{
j = N / (N / i);
R int Ph = Miu(j);
R int fs = sumf(N / i);
// printf("l = %d r = %d %d %d\n", i, j, Ph, fs);
ans = (ans + 1ll * (Ph - last + mod) * fs % mod * fs) % mod;
last = Ph;
}
// printf("%d\n", last);
printf("%d\n", ans % mod);
return ;
}
【BZOJ4176】 Lucas的数论的更多相关文章
- BZOJ4176: Lucas的数论
Description 去年的Lucas非常喜欢数论题,但是一年以后的Lucas却不那么喜欢了. 在整理以前的试题时,发现了这样一道题目“求Sigma(f(i)),其中1<=i<=N”,其 ...
- BZOJ4176 Lucas的数论 【莫比乌斯反演 + 杜教筛】
题目 去年的Lucas非常喜欢数论题,但是一年以后的Lucas却不那么喜欢了. 在整理以前的试题时,发现了这样一道题目"求Sigma(f(i)),其中1<=i<=N", ...
- bzoj4176. Lucas的数论 杜教筛
题意:求\(\sum_{i=1}^n\sum_{j=1}^nd(ij),d是约数个数函数\) 题解:首先有一个结论\(d(ij)=\sum_{x|i}\sum_{y|j}[(i,j)==1]\) 那么 ...
- 【BZOJ4176】Lucas的数论 莫比乌斯反演
[BZOJ4176]Lucas的数论 Description 去年的Lucas非常喜欢数论题,但是一年以后的Lucas却不那么喜欢了. 在整理以前的试题时,发现了这样一道题目“求Sigma(f(i)) ...
- Lucas的数论题解
Lucas的数论 reference 题目在这里> < Pre 数论分块 默认向下取整时. 形如\(\sum\limits_{i=1}^n f\left( \frac{n}{i}\righ ...
- Lucas的数论(math)
Lucas的数论(math) 题目描述 去年的今日,Lucas仍然是一个热爱数学的孩子.(现在已经变成业界毒瘤了> <) 在整理以前的试题时,他发现了这么一道题目:求\(\sum\limi ...
- BZOJ 4176: Lucas的数论 [杜教筛]
4176: Lucas的数论 题意:求\(\sum_{i=1}^n \sum_{j=1}^n \sigma_0(ij)\) \(n \le 10^9\) 代入\(\sigma_0(nm)=\sum_{ ...
- bzoj 4176: Lucas的数论 -- 杜教筛,莫比乌斯反演
4176: Lucas的数论 Time Limit: 30 Sec Memory Limit: 256 MB Description 去年的Lucas非常喜欢数论题,但是一年以后的Lucas却不那么 ...
- bzoj 4176 Lucas的数论
bzoj 4176 Lucas的数论 和约数个数和那题差不多.只不过那个题是多组询问,这题只询问一次,并且 \(n\) 开到了 \(10^9\). \[ \begin{align*} \sum_{i= ...
- Mobius反演与积性函数前缀和演学习笔记 BZOJ 4176 Lucas的数论 SDOI 2015 约数个数和
下文中所有讨论都在数论函数范围内开展. 数论函数指的是定义域为正整数域, 且值域为复数域的函数. 数论意义下的和式处理技巧 因子 \[ \sum_{d | n} a_d = \sum_{d | n} ...
随机推荐
- Elastic Search对Document的搜索
在ES中使用的重点.ES中存储的数据.核心就是为了提供全文搜索能力的.搜索功能非常重要.多练. 1 query string searchsearch的参数都是类似http请求头中的字符串参数提供搜索 ...
- MySQL8在CentOS7上的安装
Install_CentOS7_MySQL8_binary.sh #!/bin/bash MySQL_Package=mysql-8.0.16-linux-glibc2.12-x86_64.tar.x ...
- PHP扩展之 Imagick安装
最近的PHP项目中,需要用到切图和缩图的效果,在本地windows开发环境,安装过程遇到好多问题,在此与大家分享. php官网里,一大群老外也看不懂这玩意怎么装,主要原因在于,php版本庞杂,还有x8 ...
- 【Git的基本操作一】文件初始化及设置签名
1. 本地库初始化 命令: git init 效果:
- 关于MVC与MVP的理解
1. MVC的理解误区 理解误区: 1. 认为Model是指失血模型的实体类(Entity),是作为View和Controller之间的传输数据. 2. 把业务逻辑全部放在Controller端,认为 ...
- 短信对接——一种jdbc链接运用
package sms; import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamRead ...
- java(堆、栈、常量池)
参考链接: https://www.cnblogs.com/wanson/articles/10819189.html
- MySQL通过 LOAD DATA INFILE 批量导入数据
LOAD DATA INFILE 语句用法 参考手册 本文语句参数使用默认值 PHP: TP框架环境 // 定义文件路径$file_path = 'LOAD_DATA_LOCAL_INFILE.tx ...
- 【0】Zookeeper Q&A
1.Observer角色如何配置? Zookeeper集群中的中的Leader和Follower角色是由服务器启动时期的Leader选举产生的,Observer不参与选举,此角色的节点需要在配置文件z ...
- 【异常】553 Mail from must equal authorized user
1 详细异常打印 2019-08-12 14:54:42,178 ERROR org.apache.camel.processor.DefaultErrorHandler: Failed delive ...