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)k0​n=1n=p1​p2​⋯pk​other​

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筛)相关推荐

  1. ACM-ICPC 2018 徐州赛区网络预赛 D. Easy Math

    Easy Math 问答问题反馈 只看题面 16.47% 1000ms 262144K Given a positive integers nn , Mobius function \mu(n)μ(n ...

  2. 2014 ACM/ICPC 北京赛区网络赛解题报告汇总

    首页 算法竞赛» 信息聚合 ONLINE JUDGE 书刊杂志 BLOG» 新闻故事» 招聘信息» 投稿须知 2014 ACM/ICPC 北京赛区网络赛解题报告汇总 九月 21st, 2014 | P ...

  3. 2018ACM-ICPC徐州赛区网络赛: A. Hard to prepare(递推)

    2018ACM-ICPC徐州赛区网络赛: A. Hard to prepare(递推) After Incident, a feast is usually held in Hakurei Shrin ...

  4. 2011 ACM/ICPC 福州赛区网络赛解题报告

    第一次写网络赛的题解,福州赛区网络赛作为我第一年ACM最后一次网络赛酱油,画了一个很像逗号的句号.....好吧,还得为北京现场赛准备啊准备....... 这次酱油打的很犀利,貌似出第一题很快,之后节奏 ...

  5. 2018 ICPC 徐州网络赛 D. Easy Math(思维,反演,杜教筛)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 题目链接 https://nanti.jisuanke.com/t/A2003 Problem 计算 ...

  6. Easy Math(2018 ACM-ICPC 徐州赛区网络赛 D)

    Problem Description Given a positive integers n , Mobius function μ(n) is defined as follows:  are d ...

  7. 2014 ACM/ICPC 鞍山赛区网络赛(清华命题)

    为迎接10月17号清华命题的鞍山现场赛 杭电上的题目 Biconnected(hdu4997)     状态压缩DP Rotate(hdu4998)    相对任一点的旋转 Overt(hdu4999 ...

  8. 2018 ACM/ICPC 北京赛区网络赛 D 80 Days 线段树

    http://hihocoder.com/problemset/problem/1831?sid=1390457 描述 80 Days is an interesting game based on ...

  9. 2019 icpc徐州区域网络赛题解09.07

    A题: 链接:https://nanti.jisuanke.com/t/41383 思路:模型是经典常见的斐波拉契博弈模型,套上一个java大数的扩展中国剩余定理即可. 扩展中国剩余定理解出方程,判断 ...

最新文章

  1. CoLoRMap: Correcting Long Reads by Mapping short reads CoLoRMap:通过映射短读来纠正长读
  2. leetcode每日一题系列——797. 所有可能的路径
  3. 真的超越了波士顿动力!深度强化学习打造的 ANYmal 登上 Science 子刊
  4. FileZilla无法连接到服务器,不安全的服务器,不支持 FTP over TLS的解决方案
  5. linux学习比较好的网站,推荐一个好的在线学习Linux/Unix的好网站
  6. python 调用linux内核api_Linux系统调用及用户编程接口(API)学习
  7. 网络流24题1 飞行员配对方案问题
  8. JSON——JavaScript 中的使用
  9. 【印刷技术】印刷油墨的粘度,如何设定?
  10. 老板给我上了最后一课:永远要做有价值的人
  11. photoshop使用技巧_你应该知道的45个聪明的Photoshop技巧
  12. oracle语句报错 * ERROR at line 2: ORA-00923: FROM keyword not found where expected
  13. 将社会工程学演绎成艺术---弗兰克·威廉·阿巴内尔的传奇故事--黑客博客
  14. jupyter运行环境配置
  15. 【中科院信工所】-2021考研经验-记录一段每天都在思考如何学习的日子
  16. idea配置tomcat
  17. java webservice应用总结
  18. 使用“微信公众平台-公众号开放接口”的方法
  19. C++中对字符串的操作
  20. 理解 OpenStack + Ceph (3):Ceph RBD 接口和工具 [Ceph RBD API and Tools]

热门文章

  1. python在电脑下载-Windows下下载及安装numpy、pandas及简单应用
  2. python培训班-Python培训机构有哪些值得推荐?
  3. 基于非特定人语音识别芯片的技术方案
  4. css 文字超出隐藏显示省略号
  5. ffdshow 源代码分析 2: 位图覆盖滤镜(对话框部分Dialog)
  6. html中怎么让字体闪烁,HTML最简单的文字闪烁代码
  7. 查看openfrie是否连接mysql_openfire连接mysql数据库的字符集问题解决
  8. python自定义变量名有哪些_Python学习第161课——自定义变量和导出变量
  9. 多核技术对计算机技术的影响,计算机新技术——多核技术.doc
  10. php获取pc访问还是手机号_PHP函数判断电脑端浏览器访问访问还是手机端浏览器访问...