HDU 6134
题意略。
思路:
我们先不考虑[(i , j) == 1],在此情况下,其实这个值是sum( [ (i , j) == 1,2,3,....,n ] ) 这些情况。我们要求的仅仅是其中的第一部分而已。也即:
F(1) = f(1) + f(2) + f(3) + .... + f(n)。[1,2,3,....,n 是1的整数倍]
在这里,我们令 g(i) 为 i / 1 + i / 2 + .... + i / i 向下取整之和。令 G(i) 为 左式向上取整之和,我们有一个递推公式:
g(i) = G(i) - i + cnt[i] G(i) = g(i - 1) + i
其中cnt[i]记录的是 i 的因子个数。
我们要想求出在 n 条件下的 F(1),则F(1) = G(1) + G(2) + ... + G(n)。这个我们可以用一个sum预先存下前缀和。而F(2) = G(2) + G(4) + ...
也即G(1) + G(2) + ... + G(n / 2)。
这里可以用莫比乌斯反演。
但是如果每个询问都从1~n这样计算反演,那么由于样例太多,会超时。那么我们可以考虑加一个sqrt(n)的优化。
详见代码:
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
const LL maxn = ;
const LL mod = 1e9 + ; LL F[maxn],f[maxn],cnt[maxn],sum[maxn];
LL n;
bool check[maxn];
LL prime[maxn],mu[maxn];
LL sum_mu[maxn]; void mobius(){
memset(check,false,sizeof(check));
mu[] = ;
sum_mu[] = ;
int tot = ;
for(LL i = ;i < maxn;++i){
if(!check[i]){
prime[tot++] = i;
mu[i] = -;
}
for(int j = ;j < tot;++j){
if(i * prime[j] > maxn) break;
check[i * prime[j]] = true;
if(i % prime[j] == ){
mu[i * prime[j]] = ;
break;
}
else mu[i * prime[j]] = -mu[i];
}
sum_mu[i] = mu[i] + sum_mu[i - ];
}
}
void init(){
for(LL i = ;i < maxn;++i){
for(LL j = ;i * j < maxn;++j){
++cnt[i * j];
}
}
f[] = F[] = ;
for(LL i = ;i < maxn;++i){
F[i] = f[i - ] + i;
F[i] %= mod;
f[i] = (F[i] - i + cnt[i] + mod) % mod;
}
for(int i = ;i < maxn;++i){
sum[i] = F[i] + sum[i - ];
}
} int main(){
init();
mobius();
while(scanf("%lld",&n) == ){
LL ans = ;
LL last = ;
for(LL i = ;i <= n;i = last + ){
last = n / (n / i);
ans += (sum_mu[last] - sum_mu[i - ]) * sum[n / i];
ans = (ans + mod) % mod;
//printf("sum[%d / %d] == %lld\n",n,i,sum[n / i]);
}
printf("%lld\n",ans);
}
return ;
}
HDU 6134的更多相关文章
- HDU 6134 Battlestation Operational(莫比乌斯反演)
[题目链接] http://acm.hdu.edu.cn/showproblem.php?pid=6134 [题目大意] 求$\sum_{i=1}^{n}{\sum_{j=1}^{i}\lceil{\ ...
- 2017多校第8场 HDU 6134 Battlestation Operational 莫比乌斯反演
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6134 题意: 解法: 那么g(n)怎么求,我们尝试打表发现g(n)是有规律的,g(n)=g(n-1)+ ...
- hdu 6134 Battlestation Operational 莫比乌斯反演
Battlestation Operational Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 65536/65536 K (Jav ...
- 2017ACM暑期多校联合训练 - Team 8 1002 HDU 6134 Battlestation Operational (数论 莫比乌斯反演)
题目链接 Problem Description The Death Star, known officially as the DS-1 Orbital Battle Station, also k ...
- HDU 6134 Battlestation Operational | 2017 Multi-University Training Contest 8
破结论没听说过,上式推导到第三步的时候有了O(nlogn) 的做法(枚举倍数+1最后前缀和),并且这种做法可以直接应用到向上取整的计算中,详见forever97 但由于d(n)是积性函数,故可O(n) ...
- hdu 6134: Battlestation Operational (2017 多校第八场 1002)【莫比乌斯】
题目链接 比赛时没抓住重点,对那个受限制的“分数求和”太过关心了..其实如果先利用莫比乌斯函数的一个性质把后面那个[gcd(i,j)=1]去掉,那么问题就可以简化很多.公式如下 这和之前做过的一道题很 ...
- hdu 6134 Battlestation Operational (莫比乌斯反演+埃式筛)
Problem Description > The Death Star, known officially as the DS-1 Orbital Battle Station, also ...
- HDOJ 2111. Saving HDU 贪心 结构体排序
Saving HDU Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
- 【HDU 3037】Saving Beans Lucas定理模板
http://acm.hdu.edu.cn/showproblem.php?pid=3037 Lucas定理模板. 现在才写,noip滚粗前兆QAQ #include<cstdio> #i ...
随机推荐
- 用框架名唬人谁都会,那你知道Web开发模式吗?——莫问前程莫装逼
前言:这两天总结了一些Servlet和JSP里面的知识,写了几篇博客,果然有种“温故而知新”的感觉,学完这些,继续前行,开始整合框架里的知识,框架虽好,可底层原理该掌握的也得掌握,防止以后做项目的时候 ...
- Vue的基本使用(四)
1.refs属性的使用 <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset= ...
- 基础篇-1.2Java世界的规章制度(下)
1 Java运算符 Java世界中的运算其实就是数学运算,而运算符就是其中的媒介. 算术运算符 操作符 描述 + 加法,对符号两边的数值相加 - 减法,符号左边的数减去右边的数 * 乘法,符号两边的数 ...
- Supalle-Admin-Layout,一个PC端和手机端都合适用的后台页面模板
Supalle-Admin-Layout主要使用有Vue.Element-UI.layui-icon,Ajax实现采用Fetch(是有这个打算,不过目前是jQuery.). 源码地址:https:// ...
- 简单粗暴的方式解决eclipse下安装STS失败的问题
直接去Spring官网下载,spring定制eclipse https://spring.io/tools
- linux初学者-文件权限
linux初学者-文件权限 lunix系统都是以文件的形式存在,自然而然的就会要求不同的用户拥有不同的权限,这也是系统能够运行的根本保证,下文将对文件的权限管理进行简要的介绍. 1.文件属性的查看 - ...
- 【Demo 1】基于object_detection API的行人检测 3:模型训练并在OpenCV调用模型
训练准备 模型选择 选择ssd_mobilenet_v2_coco模型,下载地址(https://github.com/tensorflow/models/blob/master/research/o ...
- 《HelloGitHub》第 40 期
<HelloGitHub>第 40 期 兴趣是最好的老师,HelloGitHub 就是帮你找到兴趣! 简介 分享 GitHub 上有趣.入门级的开源项目. 这是一个面向编程新手.热爱编程. ...
- Web访问原理-从输入URL到页面加载完成的过程中都发生了什么事情?
从输入URL到页面加载完成的过程中都发生了什么事情?--这是一个经典的面试题: 主要是关于计算机网络方面的知识基础,对于非科班计算机自学web开发的同学可能理解起来就很困难. StackOverFlo ...
- web设计_7_页面缺失图片或CSS的情况下仍然易读
1. 在任何可能使用背景图片的地方应设置同样的颜色的背景色. 防止图片不能加载的情况下,页面内容同样保持较好可读性. 例如文字为白色,背景图为深色,如果不设置背景色,当背景图未成功加载, 而浏览器多数 ...