题目大意:求sum i(1->n) (sum j(1->n) (gcd(i,j)))。

对于每对(i,j)都来一次gcd很慢,但是我们知道,一个约数i在1~n范围内是n/i个数的约数。gcd也是个约数,如果能利用到这一点,不就可以同时处理很多对(i,j)了吗?

我们看看最大公约数等于i的数对(x,y)个数f[i]是多少,再让f[i]*(2*i-1)就是这个最大公因数对答案ans做出的贡献。

f[i]=公约数中含有i的个数-sum j(i->min(m,n)/i) (f[i*j])。容斥原理,如果i*j是某个数对的最大公因数,则i就不是它的最大公因数。把这样的点都抠掉,剩下的就都是关于最大公因数是i的了。

公约数含有i的个数=m/i*n/i。数对(x,y)的公约数中含有i当且仅当i既是x的约数又是y的约数。先选择约数中含有i的x,其有m/i个。这时再选择y,其有n/i个。根据乘法原理,因为是依次选择,所以两个式子相乘。

#include <cstdio>
using namespace std; #define ll long long const int MAX_N = 100010; ll Proceed(ll n)
{
ll ans = 0;
static ll f[MAX_N];
for (int i = n; i >= 1; i--)
{
f[i] = (n / i) * (n / i);
for (int j = 2; j <= n / i; j++)
f[i] -= f[i*j];
ans += i*f[i];
}
return ans;
} int main()
{
#ifdef _DEBUG
freopen("c:\\noi\\source\\input.txt", "r", stdin);
#endif
ll n;
scanf("%lld", &n);
printf("%lld\n", Proceed(n));
return 0;
}

  

luogu2398 SUM GCD的更多相关文章

  1. luoguP2398 GCD SUM [gcd]

    题目描述 for i=1 to n for j=1 to n sum+=gcd(i,j) 给出n求sum. gcd(x,y)表示x,y的最大公约数. 输入输出格式 输入格式: n 输出格式: sum ...

  2. LuoguP2398 GCD SUM

    题目地址 题目链接 题目描述 for i=1 to n for j=1 to n sum+=gcd(i,j) 给出n求sum. gcd(x,y)表示x,y的最大公约数. 输入输出格式 输入格式: n ...

  3. 洛谷P2398 GCD SUM [数论,欧拉筛]

    题目传送门 GCD SUM 题目描述 for i=1 to n for j=1 to n sum+=gcd(i,j) 给出n求sum. gcd(x,y)表示x,y的最大公约数. 输入输出格式 输入格式 ...

  4. 洛谷P2398 GCD SUM

    题目描述 for i=1 to n for j=1 to n sum+=gcd(i,j) 给出n求sum. gcd(x,y)表示x,y的最大公约数. 输入输出格式 输入格式: n 输出格式: sum ...

  5. 洛谷P2398 GCD SUM (数学)

    洛谷P2398 GCD SUM 题目描述 for i=1 to n for j=1 to n sum+=gcd(i,j) 给出n求sum. gcd(x,y)表示x,y的最大公约数. 输入输出格式 输入 ...

  6. *P2398 GCD SUM[数论]

    题目描述 for i=1 to n for j=1 to n sum+=gcd(i,j) 解析 给出n求sum. gcd(x,y)表示x,y的最大公约数. 直接枚举复杂度为\(O(n^2)\),显然无 ...

  7. 1220 - Mysterious Bacteria--LightOj1220 (gcd)

    http://lightoj.com/volume_showproblem.php?problem=1220 题目大意: 给你一个x,求出满足 x=b^p, p最大是几. 分析:x=p1^a1*p2^ ...

  8. USACO GCD Extreme(II)

    题目大意:求gcd(1,2)+gcd(1,3)+gcd(2,3)+...+gcd(n-1,n) ---------------------------------------------------- ...

  9. 关于gcd的几个问题

    这两天刷了几个关于gcd的很类似的问题,总结一下: BZOJ2818 1<=x<=n,1<=y<=n,求满足gcd(x,y)=质数的个数 BZOJ2190 1<=x< ...

随机推荐

  1. 分析Tapjoy的模式—分发用于ios设备的企业级应用程序

    下面简单介绍下Tapjoy的模式,供大家参考: Tapjoy最初的合作模式:“按安装奖励”(pay-per-install) Tapjoy利用非常成功的奖励性下载模式影响了App Store的免费游戏 ...

  2. P3799 妖梦拼木棒 (组合数学)

    题目背景 上道题中,妖梦斩了一地的木棒,现在她想要将木棒拼起来. 题目描述 有n根木棒,现在从中选4根,想要组成一个正三角形,问有几种选法? 输入输出格式 输入格式: 第一行一个整数n 第二行n个整数 ...

  3. 如何解决"The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path"

    今天我在eclipse上搭建新项目时,莫名其妙的出现这个错误,如下: The superclass "javax.servlet.http.HttpServlet" was not ...

  4. localStorage增删改查

    /** * 设置 本地缓存 */ export function setStorage(key, obj) { if (typeof obj === 'string') { localStorage. ...

  5. spring-Ioc容器与bean

    1. spring 的beanFactory容器 bean.xml  HelloWorld实体类与spring教程学习笔记1相同 public static void main(String[] ar ...

  6. msp430项目编程52

    msp430综合项目---扩展项目二52 1.电路工作原理 2.代码(显示部分) 3.代码(功能实现) 4.项目总结

  7. 使用 ftrace 调试 Linux 内核,第 2 部分

    ftrace 操作概述 使用 ftrace 提供的跟踪器来调试或者分析内核时需要如下操作: 切换到目录 /sys/kernel/debug/tracing/ 下 查看 available_tracer ...

  8. Codeforces 514C Watto and Mechanism(字典树)

    题目链接  Watto and Mechanism 题意  给出$n$个串(相当于字典),然后给出$m$个询问. 每个询问以字符串的形式给出,你需要改变这个字符串中的任意一个字符 (必须改变且只能改变 ...

  9. vue之组件理解(一)

    组件是可复用的 Vue 实例,所以它们与 new Vue 接收相同的选项,例如 data.computed.watch.methods 以及生命周期钩子等.仅有的例外是像 el 这样根实例特有的选项. ...

  10. webstorm(二):拼写warning

    逼死强迫症之对拼写进行检查,警告 typo:in word “msgfromfather”