hdu 6134: Battlestation Operational (2017 多校第八场 1002)【莫比乌斯】
比赛时没抓住重点,对那个受限制的“分数求和”太过关心了。。其实如果先利用莫比乌斯函数的一个性质把后面那个[gcd(i,j)=1]去掉,那么问题就可以简化很多。公式如下

这和之前做过的一道题很相似。。(见http://www.cnblogs.com/Just--Do--It/p/7326572.html)
这个式子显然是可以用分块+预处理mu[i]前缀和的方法来做。
预处理复杂度是O(n),分块解决单组询问复杂度是O(sqrt(n))
求g[n]可以用递推式来解决。
对比g[n]和g[n-1],可以发现,当i整除n-1时,n/i比(n-1)/i大1,另外,g[n]比g[n-1]多末尾一项n/n(此处“/”即向上取整的除,因为我太懒了,就不写那么标准了。。),由此可以找到规律,g[n]=g[n-1]+d[n-1]+1。(很巧,那道题也用到了d[n])
代码如下
#include<bits/stdc++.h>
using namespace std;
typedef long long LL; const int mod=1e9+;
const int maxn=1e6+;
int prime[maxn+];
bool check[maxn+];
int d[maxn+];
int mu[maxn+];
int sum[maxn+];
int min_prime_cnt[maxn+];
int g[maxn+]; void init()
{
mu[]=,d[]=;
int tot=;
for(int i=; i<=maxn; i++)
{
if(!check[i])
{
prime[tot++]=i;
mu[i]=-;
min_prime_cnt[i]=;
d[i]=;
}
for(int j=; j<tot; j++)
{
int t=i*prime[j];
if(t>maxn) break;
check[t]=true;
if(i%prime[j]==)
{
mu[t]=;
min_prime_cnt[t]=min_prime_cnt[i]+;
d[t]=d[i]/(min_prime_cnt[i]+)*(min_prime_cnt[t]+);
break;
}
else
{
mu[t]=-mu[i];
d[t]=d[i]*;
min_prime_cnt[t]=;
}
}
}
g[]=;
for(int i=;i<=maxn;i++) g[i]=(g[i-]+d[i-]+)%mod;
for(int i=;i<=maxn;i++) g[i]=(g[i]+g[i-])%mod;
for(int i=;i<=maxn;i++) sum[i]=sum[i-]+mu[i];
} int n; int main()
{
init();
while(~scanf("%d",&n))
{
LL ans=;
for(int i=, last; i<=n; i=last+)
{
last=n/(n/i);
ans=(ans+(sum[last]-sum[i-])*g[n/i])%mod;
}
printf("%lld\n",(ans+mod)%mod);
}
}
hdu 6134: Battlestation Operational (2017 多校第八场 1002)【莫比乌斯】的更多相关文章
- HDU 6134 Battlestation Operational | 2017 Multi-University Training Contest 8
破结论没听说过,上式推导到第三步的时候有了O(nlogn) 的做法(枚举倍数+1最后前缀和),并且这种做法可以直接应用到向上取整的计算中,详见forever97 但由于d(n)是积性函数,故可O(n) ...
- hdu 6143: Killer Names (2017 多校第八场 1011)
题目链接 题意,有m种颜色,给2n个位置染色,使左边n个和右边n个没有共同的颜色. 可以先递推求出恰用i种颜色染n个位置的方案数,然后枚举两边的染色数就可以了,代码很简单. #include<b ...
- hdu 6134 Battlestation Operational 莫比乌斯反演
Battlestation Operational Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 65536/65536 K (Jav ...
- 2017多校第8场 HDU 6134 Battlestation Operational 莫比乌斯反演
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6134 题意: 解法: 那么g(n)怎么求,我们尝试打表发现g(n)是有规律的,g(n)=g(n-1)+ ...
- 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(莫比乌斯反演)
[题目链接] http://acm.hdu.edu.cn/showproblem.php?pid=6134 [题目大意] 求$\sum_{i=1}^{n}{\sum_{j=1}^{i}\lceil{\ ...
- hdu 6134 Battlestation Operational (莫比乌斯反演+埃式筛)
Problem Description > The Death Star, known officially as the DS-1 Orbital Battle Station, also ...
- hdu 6127 : Hard challenge (2017 多校第七场 1008)(计算几何)
题目链接 题意:二维平面上有n个点(没有重叠,都不在原点,任意两点连线不过原点),每个点有一个权值,用一条过原点的直线把他们划分成两部分,使两部分的权值和的乘积最大.输出最大的乘积. 极角排序后,将原 ...
- 2019牛客多校第八场 F题 Flowers 计算几何+线段树
2019牛客多校第八场 F题 Flowers 先枚举出三角形内部的点D. 下面所说的旋转没有指明逆时针还是顺时针则是指逆时针旋转. 固定内部点的答案的获取 anti(A)anti(A)anti(A)或 ...
随机推荐
- ARM非对齐访问和Alignment Fault
1.指令对齐 A64指令必须word对齐.尝试在非对齐地址取值会触发PC alignment fault. 1.1.PC alignment checking PC(Program Counter)寄 ...
- C# winform 键盘全局事件
本文转载自:http://www.cnblogs.com/yukaizhao/archive/2010/12/14/winform_keyup.html 在winform程序中给form添加了keyu ...
- 【MM系列】SAP MM模块-基础配置第一篇
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP MM模块-基础配置第一篇 ...
- 配置OSPF认证
按照上图拓扑配置路由器的IP 配置完后测试直连网段连通性 搭建OSPF网络 注意是多区域的配置,R2是ABR 连着area0和area1 并且每个路由器的环回接口IP也要加进去 此时密码以明文方 ...
- mysql 主从 设置
总结:1.如果是虚拟克隆mysql 请注意auto.cnf的uuid保证不一样,即删除auto.cnf 重新启动即可2.默认安装的mysql配置文件mysqld.cnf可能绑定了127.0.0.1 只 ...
- [Markdown] 01 简单应用 第一弹
目录 0. "调用函数前必先声明" 0.1 Table of Content 0.2 分割线 0.3 引用 0.4 标记 0.5 关于 html 0.6 代码块 用法 1 用法 2 ...
- Maven依赖项Scope属性设置含义
Idea的File->Project Structure->左侧Modules: 选择自己的项目如图: 每个依赖项的Scope选项进行该jar包的相关操作设置,默认为compile,根据需 ...
- vmware 中标麒麟系统安装VM tools
打开虚拟机系统,选择菜单虚拟机->安装VMware TOOLs,下载后找到文件. 我的文件名称是 VMwareTools-10.2.5-8068393.tar.gz, 在终端里输入:tar xv ...
- [常用类]时间内Date、SimpleDateFormat、Calendar类
Date类的概述是util包下的,不能导入sql包的.* 类 Date 表示特定的瞬间,精确到毫秒. *构造方法 * public Date() * public Date(long date) 如果 ...
- Redis 和 MongoDB 的优缺点??
MongoDB 和 Redis 都是 NoSQL,采用结构型数据存储.二者在使用场景中,存在一定的区别, 这也主要由于二者在内存映射的处理过程,持久化的处理方法不同.MongoDB 建议集群部署,更多 ...