转载注明出处:http://www.cnblogs.com/radioteletscope/p/7142762.html

题面:

2818: Gcd

Time Limit: 10 Sec  Memory Limit: 256 MB
Submit: 5345  Solved: 2400
[Submit][Status][Discuss]

Description

给定整数N,求1<=x,y<=N且Gcd(x,y)为素数的
数对(x,y)有多少对.

Input

一个整数N

Output

如题

Sample Input

4

Sample Output

4

HINT

hint

对于样例(2,2),(2,4),(3,3),(4,2)

1<=N<=10^7

令$f[i]=\sum_{d|T}^{} \mu(\frac{T}{d})$

只需线性筛出,再分块处理询问。

 1 #include<iostream>
 2 #include<cstdio>
 3 using namespace std;
 4 #define LL long long
 5 const int maxn=10000001;
 6 int mu[maxn+10],prime[maxn+10],g[maxn+10];
 7 int s[maxn+10];
 8 bool book[maxn+10];
 9 int T,n,cnt;
10 void ss()
11 {
12     mu[1]=1;
13     for(int i=2;i<=maxn;i++)
14     {
15         if(!book[i])
16         {
17             prime[++cnt]=i;
18             mu[i]=-1;
19             g[i]=1;
20         }
21         for(int j=1;j<=cnt&&i*prime[j]<=maxn;j++)
22         {
23             book[i*prime[j]]=true;
24             if(i%prime[j])
25                 mu[i*prime[j]]=-mu[i],g[i*prime[j]]=mu[i]-g[i];
26             else
27             {
28                 mu[i*prime[j]]=0;
29                 g[i*prime[j]]=mu[i];
30                 break;
31             }
32         }
33     }
34     s[0]=0;
35     for(int i=1;i<=maxn;i++)
36         s[i]=s[i-1]+g[i];
37 }
38 LL caculate()
39 {
40     LL ans=0,last;
41     for(int i=1;i<=n;i=last+1)
42     {
43         last=n/(n/i);
44         ans+=(LL)(s[last]-s[i-1])*(n/i)*(n/i);
45     }
46     return ans;
47 }
48 int main()
49 {
50     ss();
51     scanf("%d",&n);
52     printf("%lld\n",caculate());
53 }

BZOJ 2818

转载于:https://www.cnblogs.com/radioteletscope/p/7142762.html

BZOJ 2818GCD相关推荐

  1. BZOJ.1558.[JSOI2009]等差数列(线段树 差分)

    BZOJ 洛谷 首先可以把原序列\(A_i\)转化成差分序列\(B_i\)去做. 这样对于区间加一个等差数列\((l,r,a_0,d)\),就可以转化为\(B_{l-1}\)+=\(a_0\),\(B ...

  2. S-T平面图中利用最短路求最小割(BZOJ 1001)

    BZOJ 1001: [BeiJing2006]狼抓兔子 最小割 题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1001 现在小朋友们最喜欢 ...

  3. BZOJ 1124: [POI2008]枪战Maf(构造 + 贪心)

    题意 有 \(n\) 个人,每个人手里有一把手枪.一开始所有人都选定一个人瞄准(有可能瞄准自己).然后他们按某个顺序开枪,且任意时刻只有一个人开枪. 因此,对于不同的开枪顺序,最后死的人也不同. 问最 ...

  4. BZOJ 2957楼房重建

    传送门 线段树 //Twenty #include<cstdio> #include<cstdlib> #include<iostream> #include< ...

  5. BZOJ.5249.[九省联考2018]iiidx(贪心 线段树)

    BZOJ LOJ 洛谷 \(d_i\)不同就不用说了,建出树来\(DFS\)一遍. 对于\(d_i\)不同的情况: Solution 1: xxy tql! 考虑如何把这些数依次填到树里. 首先对于已 ...

  6. bzoj 4871: [Shoi2017]摧毁“树状图”

    4871: [Shoi2017]摧毁"树状图" Time Limit: 25 Sec  Memory Limit: 512 MB Submit: 53  Solved: 9 [Su ...

  7. BZOJ 1592. Making the Grade(思维,数据结构优化DP,以及三个拓展问题)[Usaco2008 Feb]【BZOJ计划】

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 BZOJ简单题合集x 目录 BZOJ 1592. Making the Grade 拓展问题一 拓展问 ...

  8. BZOJ 1590.Secret Message 秘密信息(Trie树) [Usaco2008 Dec]【BZOJ计划】

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 BZOJ简单题合集x Weblink https://hydro.ac/d/bzoj/p/1590 P ...

  9. BZOJ 1589 Trick or Treat on the Farm (tarjan缩点,记忆化搜索)[Usaco 2008 Dec Gold]【BZOJ计划】

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Weblink https://hydro.ac/d/bzoj/p/1589 Problem 每年万圣 ...

最新文章

  1. python简介怎么写-python简历模板范文
  2. 【AI初识境】给深度学习新手开始项目时的10条建议
  3. ffmpeg如何在结尾添加帧_一种“视频帧对齐”的测试方案实践
  4. TypeScript React
  5. 人生:沉得住气,方成得了器!
  6. 虚拟键码对照表与ASCII对照表的整理
  7. 微课|中学生可以这样学Python(例6.2):列表循环左移位
  8. Python+OpenCV:二维直方图(2D Histograms)
  9. JavaWeb—作业【建立新闻数据库以及插入数据】
  10. 华为 “Telnet” 登录设备
  11. 2020-11-17 一道有趣的求极限问题
  12. DDD战略建模在重构业务系统时的实践
  13. Linux内核延迟写机制学习
  14. Linux下载安装Netcat
  15. ITK4.12+VS2015配置详解
  16. hdu 4009 Transfer water(最小树形图模板)
  17. 记录:Java序列化
  18. 关于64位整型int64_t
  19. 组播IGMP-原理介绍+报文分析+配置示例
  20. iPhone 11依然坚挺的原因是什么?

热门文章

  1. leetcode-110:判断平衡二叉树 Java
  2. [转载]JavaScript 的轻框架开发
  3. 官方中文版开源!快速入门PyTorch
  4. 【TensorFlow】TensorFlow从浅入深系列之五 -- 教你详解滑动平均模型
  5. 无语!Docker桌面不再对企业用户免费
  6. 英特尔杀入游戏显卡市场:支持光追和AI超分辨率,挑战AMD英伟达
  7. BBAug: PyTorch的物体检测包
  8. 内推!美团2021届应届生补招与2022届实习生招聘同步开启
  9. 收藏 | 计算机视觉四大基本任务(分类、定位、检测、分割)
  10. 有哪些越早知道越好的人生经验?