2018ACM-ICPC徐州赛区网络赛: D. Easy Math(Min_25筛)
D. Easy Math
Given a positive integers nn , Mobius function \mu(n)μ(n) is defined as follows:
\displaystyle \mu(n) = \begin{cases} 1 &n = 1 \\ (-1)^k & n = p_1p_2\cdots p_k \\ 0 &other \end{cases}μ(n)=⎩⎪⎨⎪⎧1(−1)k0n=1n=p1p2⋯pkother
p_i (i = 1, 2, \cdots, k)pi(i=1,2,⋯,k) are different prime numbers.
Given two integers mm, nn, please calculate \sum_{i = 1}^{m} \mu(in)∑i=1mμ(in).
Input
One line includes two integers m (1 \le m \le 2e9)m(1≤m≤2e9), n (1 \le n \le 1e12)n(1≤n≤1e12) .
Output
One line includes the answer .
样例输入
2 2
样例输出
-1
题意:
已知,求
思路:
不需要递归,更不需要容斥!直接将min_25修改一下即可,20ms
Min_25筛:https://blog.csdn.net/Jaihk662/article/details/82024131
可以分析出这题的递推公式就是:
答案就是
其中T表示大于等于第y个质数且小于m且不是n的因子的质数个数,右边的求和中不能为n的因子
复杂度约为O()
#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<map>
#include<string>
#include<math.h>
#include<queue>
#include<stack>
#include<iostream>
using namespace std;
#define LL long long
LL cnt, Cnt, id[1000005], B, m, H[1000005], jud[1000005], Ans, n, w[1000005], pri[1000005], Pri[100005];
bool flag[1000005];
void Primeset(LL n)
{LL i, j;for(i=2;i<=n;i++){if(flag[i]==0)pri[++cnt] = i;for(j=1;j<=cnt&&i*pri[j]<=n;j++){flag[i*pri[j]] = 1;if(i%pri[j]==0)break;}}
}
LL F(LL x, LL y)
{LL i, k, ans;if(x<=1 || pri[y]>x)return 0;if(x>B)k = n/x;if(x<=B)k = id[x];ans = (y-1)-H[k];for(i=1;i<=Cnt;i++){if(Pri[i]>pri[y-1] && Pri[i]<=w[k])ans++;}for(i=y;i<=cnt&&(LL)pri[i]*pri[i]<=x;i++){if(jud[i]==0)ans = ans-F(x/pri[i], i+1);}return ans;
}int main(void)
{LL i, j, k, P, last, sum;scanf("%lld%lld", &n, &P);B = sqrt(n), Primeset(1000002);sum = 0;for(i=1;i<=cnt&&pri[i]*pri[i]<=P;i++){if(P%(pri[i]*pri[i])==0){printf("0\n");return 0;}if(P%pri[i]==0){jud[i] = 1;Pri[++Cnt] = pri[i], sum++;P /= pri[i];}}if(P!=1){Pri[++Cnt] = P, sum++;for(i=1;i<=cnt;i++){if(pri[i]==P)jud[i] = 1;}}for(i=1;i<=n;i=last+1){w[++m] = n/i;H[m] = w[m]-1;last = n/(n/i);if(n/i<=B)id[n/i] = m;}for(j=1;j<=cnt;j++){for(i=1;i<=m&&pri[j]*pri[j]<=w[i];i++){if(w[i]/pri[j]<=B)k = id[w[i]/pri[j]];elsek = n/(w[i]/pri[j]);H[i] = H[i]-(H[k]-(j-1));}}Ans = F(n, 1)+1;if(Cnt%2==1)Ans *= -1;printf("%lld\n", Ans);return 0;
}
2018ACM-ICPC徐州赛区网络赛: D. Easy Math(Min_25筛)相关推荐
- ACM-ICPC 2018 徐州赛区网络预赛 D. Easy Math
Easy Math 问答问题反馈 只看题面 16.47% 1000ms 262144K Given a positive integers nn , Mobius function \mu(n)μ(n ...
- 2014 ACM/ICPC 北京赛区网络赛解题报告汇总
首页 算法竞赛» 信息聚合 ONLINE JUDGE 书刊杂志 BLOG» 新闻故事» 招聘信息» 投稿须知 2014 ACM/ICPC 北京赛区网络赛解题报告汇总 九月 21st, 2014 | P ...
- 2018ACM-ICPC徐州赛区网络赛: A. Hard to prepare(递推)
2018ACM-ICPC徐州赛区网络赛: A. Hard to prepare(递推) After Incident, a feast is usually held in Hakurei Shrin ...
- 2011 ACM/ICPC 福州赛区网络赛解题报告
第一次写网络赛的题解,福州赛区网络赛作为我第一年ACM最后一次网络赛酱油,画了一个很像逗号的句号.....好吧,还得为北京现场赛准备啊准备....... 这次酱油打的很犀利,貌似出第一题很快,之后节奏 ...
- 2018 ICPC 徐州网络赛 D. Easy Math(思维,反演,杜教筛)
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 题目链接 https://nanti.jisuanke.com/t/A2003 Problem 计算 ...
- Easy Math(2018 ACM-ICPC 徐州赛区网络赛 D)
Problem Description Given a positive integers n , Mobius function μ(n) is defined as follows: are d ...
- 2014 ACM/ICPC 鞍山赛区网络赛(清华命题)
为迎接10月17号清华命题的鞍山现场赛 杭电上的题目 Biconnected(hdu4997) 状态压缩DP Rotate(hdu4998) 相对任一点的旋转 Overt(hdu4999 ...
- 2018 ACM/ICPC 北京赛区网络赛 D 80 Days 线段树
http://hihocoder.com/problemset/problem/1831?sid=1390457 描述 80 Days is an interesting game based on ...
- 2019 icpc徐州区域网络赛题解09.07
A题: 链接:https://nanti.jisuanke.com/t/41383 思路:模型是经典常见的斐波拉契博弈模型,套上一个java大数的扩展中国剩余定理即可. 扩展中国剩余定理解出方程,判断 ...
最新文章
- CoLoRMap: Correcting Long Reads by Mapping short reads CoLoRMap:通过映射短读来纠正长读
- leetcode每日一题系列——797. 所有可能的路径
- 真的超越了波士顿动力!深度强化学习打造的 ANYmal 登上 Science 子刊
- FileZilla无法连接到服务器,不安全的服务器,不支持 FTP over TLS的解决方案
- linux学习比较好的网站,推荐一个好的在线学习Linux/Unix的好网站
- python 调用linux内核api_Linux系统调用及用户编程接口(API)学习
- 网络流24题1 飞行员配对方案问题
- JSON——JavaScript 中的使用
- 【印刷技术】印刷油墨的粘度,如何设定?
- 老板给我上了最后一课:永远要做有价值的人
- photoshop使用技巧_你应该知道的45个聪明的Photoshop技巧
- oracle语句报错 * ERROR at line 2: ORA-00923: FROM keyword not found where expected
- 将社会工程学演绎成艺术---弗兰克·威廉·阿巴内尔的传奇故事--黑客博客
- jupyter运行环境配置
- 【中科院信工所】-2021考研经验-记录一段每天都在思考如何学习的日子
- idea配置tomcat
- java webservice应用总结
- 使用“微信公众平台-公众号开放接口”的方法
- C++中对字符串的操作
- 理解 OpenStack + Ceph (3):Ceph RBD 接口和工具 [Ceph RBD API and Tools]
热门文章
- python在电脑下载-Windows下下载及安装numpy、pandas及简单应用
- python培训班-Python培训机构有哪些值得推荐?
- 基于非特定人语音识别芯片的技术方案
- css 文字超出隐藏显示省略号
- ffdshow 源代码分析 2: 位图覆盖滤镜(对话框部分Dialog)
- html中怎么让字体闪烁,HTML最简单的文字闪烁代码
- 查看openfrie是否连接mysql_openfire连接mysql数据库的字符集问题解决
- python自定义变量名有哪些_Python学习第161课——自定义变量和导出变量
- 多核技术对计算机技术的影响,计算机新技术——多核技术.doc
- php获取pc访问还是手机号_PHP函数判断电脑端浏览器访问访问还是手机端浏览器访问...