BZOJ 2818——Gcd

题意:给定n,求gcd(x,y)==p 的对数,其中(1<=x<y<n)


思路:

(x, y) = k, 1 <= x, y <= n的对数等于求(x, y) = 1, 1 <= x, y <= n/k的对数!所以,枚举每个质数p(线性筛素数的方法见:线性时间内筛素数和欧拉函数),然后求(x, y) = 1, 1 <= x, y <= n/p的个数。

(x, y) = 1的个数如何求呢?其实就是求互质的数的个数。在[1, y]y互质的数有phi(y)个,如果我们令x < y,那么答案就是sigma(phi(y))。因为x, y是等价的,所以答案*2,又因为(1, 1)只有一对,所以-1。最终答案为sigma(sigma(phi(n/prime[i])) * 2 - 1)

参考:https://oi.abcdabcd987.com/eight-gcd-problems/


code:

#include <cstdio>
#include <iostream>
#include <algorithm>
#include <set>
#include <cmath>
#include <vector>
using namespace std;
using namespace std;
typedef long long ll;
const int N = 10000005;
const ll maxn=1e18+100;
int n,len;
int p[N],phi[N];
bool vis[N];int main()
{scanf("%d",&n);len=0;for (int i=2;i<=n;i++){if (!vis[i]){p[len++]=i;phi[i]=i-1;}for (int j=0;j<len&&i*p[j]<=n;j++){vis[i*p[j]]=1;if (i%p[j]) phi[i*p[j]]=phi[i]*(p[j]-1);else{phi[i*p[j]] = phi[i] * p[j];break; }}}phi[1]=1;for (int i=2;i<=n;i++) phi[i]+=phi[i-1];ll ans=0;for (int i=0;i<len;i++) ans+=phi[n/p[i]]*2-1;printf("%lld",ans);
}



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/381694.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

刚安装Vs2008,安装时它弹出了一个一些常见问题的解决方案页,记录下

以此作为记录&#xff0c;以防出现问题时找不到解决方案 http://download.microsoft.com/download/5/2/6/52681ab9-da31-46bd-aef7-e2cb928f48ca/VSReadme.htm 转载于:https://www.cnblogs.com/hanxianlong/archive/2007/11/02/946392.html

关于资料和总结

ACM常用资料以及速查 数论及数学递推 康托展开 反素数 约数和定理 原根 Lucas定理 中国剩余定理 ploya定理 博弈树 Bell数 搜索以及图论 启发式搜索技术A* DLX精确覆盖 博客2

是否会成为问题——Linq to Sql的执行可能无法复用查询计划

查询计划 Sql Server在执行一条查询语句之前都对对它进行“编译”并生成“查询计划”&#xff0c;查询计划告诉Sql Server的查询引擎应该用什么方式进行工作。Sql Server会根据当前它可以收集到的各种信息&#xff08;例如内存大小&#xff0c;索引的统计等等&#xff09;把一条…

第七届山东省Acm程序设计竞赛赛后总结

其实这次相对来说是比较轻松的&#xff0c;经过差不多2年的磨合&#xff0c;大家的默契度已经配合的足够熟练&#xff0c;而对于考场的压力和紧张感&#xff0c;相比去年前几次要放松许多&#xff0c;说来实在奇怪&#xff0c;去年我们嚷嚷着要拿XXX&#xff0c;到最后一无所获…

再别康桥

轻轻的我走了&#xff0c;正如我轻轻的来&#xff1b;我轻轻的招手&#xff0c;作别西天的云彩。那河畔的金柳是夕阳中的新娘波光里的艳影&#xff0c;在我的心头荡漾。软泥上的青荇&#xff0c;油油的在水底招摇&#xff1b;在康河的柔波里&#xff0c;我甘心做一条水草那树荫…

Java在ACM中的应用

Chapter I. Java的优缺点各种书上都有&#xff0c;这里只说说用Java做ACM-ICPC的特点&#xff1a; (1) 最明显的好处是&#xff0c;学会Java&#xff0c;可以参加Java Challenge :) (2) 对于熟悉C/C的程序员来说&#xff0c;Java 并不难学&#xff0c;找本书&#xff0c;一两…

Lucas定理及组合数取模

首先给出这个Lucas定理&#xff1a; A、B是非负整数&#xff0c;p是质数。AB写成p进制&#xff1a;Aa[n]a[n-1]...a[0]&#xff0c;Bb[n]b[n-1]...b[0]。 则组合数C(A,B)与C(a[n],b[n])*C(a[n-1],b[n-1])*...*C(a[0],b[0]) modp同余 即&#xff1a;Lucas(n,m,p)c(n%p,m%p)*Luc…

系统优化设置-之二

5、关掉不必要的服务 单击“开始”→“设置”→“控制面板”。双击“管理工具”→“服务”&#xff0c;打开后将看到服务列表&#xff0c;有些服务已经启动&#xff0c;有些则没有。右键单击要配置的服务&#xff0c;然后单击“属性”。在“常规”选项卡上选择“自动”、“手动…

CCPC网络赛前一周的充电计划

CCPC大概还有一周左右的时间&#xff0c;在这一周内&#xff0c;要补充一些数学内容&#xff0c;避免出现像去年学长们一样出现的情况&#xff0c;不能出现在碰到相关题目的时候面面相嘘不知所以然。 所以这几天的计划大体是&#xff1a; 1. Lucas定理 : 题库 2. 中国剩余定…

解决手机死机之锦囊妙计

引言 不久前买的586W我的是T版的英文说明书,只见说明书中介绍说如果死机的话只须拔掉电池重新安回即可.当时我就郁闷了拔电池呀?多伤机器呀?有一次下载了个JAVA游戏,刚运行就死机了(游戏BUG).于是我便想到了说明书中说道的拔电池.思前想后还是没拔,怕伤了机器;我抱着试试…

hdu 4349——Xiao Ming's Hope

题意&#xff1a;给定n&#xff0c;让求c(n,0),c(n,1)……c(n,n)中有多少奇数。 思路&#xff1a;本题为Lucas定理推导题&#xff0c;我们分析一下 C(n,m)%2,那么由lucas定理&#xff0c;我们可以写 成二进制的形式观察&#xff0c;比如 n1001101&#xff0c;m是从000000到10…

介绍及安装

不知读者是否听说过“宠物大战”&#xff1f;大意为Sun公司为帮助开发人员和架构师使用J2EE技术&#xff0c;发布了一个在线宠物商店Sun Java Pet Store。而微软公司则利用.NET技术也发布了一个实现同样功能的PetShop&#xff0c;并且在代码数量、性能等各方面对二者进行了比较…

hdu5446——Unknown Treasure

题意&#xff1a;给定n和m&#xff0c;求c(n,m)%(∏ p)的值&#xff0c;相当于lucas定理的一个推广&#xff0c;在p不是素数的情况下的一个解决方法。 思路&#xff1a; 首先对于c(n,m)%p[i]来讲&#xff0c;是一个lucas的裸题&#xff0c;那么对于c(n,m)%(∏ p)划分成lucas子…

自定函数获取datagrid,datalist,rpeater控件中header,footer栏中控件

在论坛上看到很多关于datagrid,gridview,datalist,rpeater提取header,footer中控件的问题,整理了一下.供大家分享下面我以DataGrid为便进行说明.footer栏又称页脚栏,在很多时候我们可以在该栏放页码及相当的功能键.但是最后在获得这些控件引用的时候就会有点麻烦,由于footer(页…

如何做好一名软件实施人员 (转载)

通过一年的软件实施&#xff0c;使我深深的感觉到&#xff0c;软件实施&#xff0c;其实并不是一件很容易的事&#xff0c;也许可算是一项挑战&#xff0c;很需要“明知山有虎&#xff0c;偏向虎山行”的信心和勇气。为什么这样说呢&#xff1f; 因为&#xff0c;软件实施可以说…

hdu 5802——Windows 10

题意&#xff1a;给定两个音量&#xff0c;需要从l调到r&#xff0c;每次只能向上一下或者向下&#xff08;1&#xff0c;2&#xff0c;4&#xff0c;2^n&#xff09;下&#xff08;连续向下的情况下&#xff09;&#xff0c;每次可以停歇或向上来打断向下的连续性&#xff0c;…

20160807_第一周周报

写在前面 以后每周周日要进行一次周报&#xff0c;内容长短不限&#xff0c;为这一周的知识点和心态方面的总结&#xff0c;还有就是对未来的相关规划和调节&#xff01;知识点方面 在知识点方面进度不是太大&#xff0c;打的还是一般化的套路&#xff0c;在这个周的前几天的…

微软认证题库

微软认证题库 70-320XML Web Service开发for C#模拟题实用软件工程方法题库MCP 70-300&#xff1a;基于.NET的需求分析和解决方案设计认证题库三个认证题库点击直接下载posted on 2007-12-12 22:32 当当 阅读(...) 评论(...) 编辑 收藏 转载于:https://www.cnblogs.com/hyzhi/a…

hdu 5783——Divide the Sequence

题意及思路&#xff1a; 求一个序列的分段个数&#xff0c;使得每一段的前缀和为0&#xff0c;如果正向思维&#xff0c;那么解法是从前往后遍历&#xff0c;每遇到一个负数就向前遍历直到>0&#xff08;这样贪心保证了序列尽可能多&#xff09;,但是这样最坏的情况是n^2的…

IE7快捷键

快捷方式 常规 打开或关闭全屏模式F11移动选择网页上的地址栏、“刷新”按钮、搜索框和项目Tab查找页面上的字词或短语CtrlF在新窗口中打开当前网页CtrlN打印页面CtrlP选择页面上的所有项目CtrlA放大Ctrl加号缩小Ctrl减号缩放到 100%Ctrl0导航快捷方式 转至主页 AltHome后退Alt…