GCD?LCM!

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)
Total Submission(s): 316    Accepted Submission(s): 200

Output
T lines, find S(n) mod 258280327.
Sample Input
8
1
2
3
4
10
100
233
11037
Sample Output
1
5
13
26
289
296582
3928449
213582482
Author
SXYZ
Source
 
 
【分析】
  这题好神啊。。。又涨姿势了。。
  $$f(n)=\sum\sum [lcm(i,j)+gcd(i,j)>=n]$$
  $$=\sum_{i'}\sum_{j'}\sum_{d}[d+i'*j'*d>=n]$$
  $$=\sum_{i'}\sum_{j'}\sum_{d}[(i'*j'+1)*d>=n]$$
  $$=\sum_{i'}\sum_{j'}\sum_{d}[(i'*j'+1)*d>=n-1]-\sum_{i'}\sum_{j'}\sum_{d}[(i'*j'+1)*d==n-1]$$
  设$G(n)=\sum_{d|n}[gcd(d,\dfrac{n}{d})==1]$
  则
  $f(n)=f(n-1)-\sum_{d} G(\dfrac{n-1}{d}-1)+(2*n-1)$【后面加的是要注意i和j的范围!!!】
  $G$G是积性函数,且$G(p^k)=2$
  则可以$O(n)$筛出来。。
  然后f前面的累加,后面的nlogn处理。
  然后再累加即可。
 
 #include<cstdio>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
#define Maxn 1000010
#define Mod 258280327 int pri[Maxn],pl,g[Maxn],t[Maxn],f[Maxn];
bool vis[Maxn]; void init()
{
memset(vis,,sizeof(vis));
pl=;g[]=;
for(int i=;i<=Maxn-;i++)
{
if(!vis[i]) pri[++pl]=i,g[i]=;
for(int j=;j<=pl;j++)
{
if(pri[j]*i>Maxn-) break;
vis[i*pri[j]]=;
if(i%pri[j]==) g[i*pri[j]]=g[i];
else g[i*pri[j]]=*g[i]%Mod;
if(i%pri[j]==) break;
}
}
for(int i=;i<=Maxn-;i++)
{
for(int j=i;j<=Maxn-;j+=i)
{
t[j]=(t[j]+g[j/i-])%Mod;
}
}
for(int i=;i<=Maxn-;i++) f[i]=(f[i-]+(*i-)-t[i-])%Mod;
for(int i=;i<=Maxn-;i++) f[i]=((f[i]+f[i-])%Mod+Mod)%Mod;
} int main()
{
init();
int T;
scanf("%d",&T);
while(T--)
{
int n;
scanf("%d",&n);
printf("%d\n",f[n]);
}
return ;
}

【有一点点容斥的东东在么?】

2017-04-27 15:28:52

【HDU 5382】 GCD?LCM! (数论、积性函数)的更多相关文章

  1. 2015多校第8场 HDU 5382 GCD?LCM! 数论公式推导

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5382 题意:函数lcm(a,b):求两整数a,b的最小公倍数:函数gcd(a,b):求两整数a,b的最 ...

  2. 数学--数论--Hdu 1452 Happy 2004(积性函数性质+和函数公式+快速模幂+乘法逆元)

    Consider a positive integer X,and let S be the sum of all positive integer divisors of 2004^X. Your ...

  3. hdu 5382 GCD?LCM! - 莫比乌斯反演

    题目传送门 传送门I 传送门II 题目大意 设$F(n) = \sum_{i = 1}^{n}\sum_{j = 1}^{n}\left [ [i, j] + (i, j) \geqslant n \ ...

  4. hdu 5382 GCD?LCM!

    先考虑化简f函数 发现,f函数可以写成一个递归式,化简后可以先递推求出所有f函数的值, 所以可以先求出所有S函数的值,对于询问,O(1)回答 代码: //File Name: hdu5382.cpp ...

  5. 积性函数,线性筛入门 HDU - 2879

    HDU - 2879HeHe 题意:He[N]为[0,N−1]范围内有多少个数满足式子x2≡x (mod N),求HeHe[N]=He[1]×……×He[N] 我是通过打表发现的he[x]=2k,k为 ...

  6. 数学--数论--HDU 5382 GCD?LCM?(详细推导,不懂打我)

    Describtion First we define: (1) lcm(a,b), the least common multiple of two integers a and b, is the ...

  7. HDU 1452 Happy 2004 (逆元+快速幂+积性函数)

    G - Happy 2004 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Subm ...

  8. HDU 1452 Happy 2004(因子和的积性函数)

    题目链接 题意 : 给你一个X,让你求出2004的X次方的所有因子之和,然后对29取余. 思路 : 原来这就是积性函数,点这里这里这里,这里讲得很详细. 在非数论的领域,积性函数指所有对于任何a,b都 ...

  9. Mobius反演与积性函数前缀和演学习笔记 BZOJ 4176 Lucas的数论 SDOI 2015 约数个数和

    下文中所有讨论都在数论函数范围内开展. 数论函数指的是定义域为正整数域, 且值域为复数域的函数. 数论意义下的和式处理技巧 因子 \[ \sum_{d | n} a_d = \sum_{d | n} ...

随机推荐

  1. 查找和替换img src

    $("#imgId")[0].src; //获取 $("#imgId").attr('src',path); //修改

  2. python---基础知识回顾(一)(引用计数,深浅拷贝,列表推导式,lambda表达式,命名空间,函数参数逆收集,内置函数,hasattr...)

    一:列表和元组(引用计数了解,深浅拷贝了解) 序列:序列是一种数据结构,对其中的元素按顺序进行了编号(从0开始).典型的序列包括了列表,字符串,和元组 列表是可变的(可以进行修改),而元组和字符串是不 ...

  3. ThinkPHP框架学习(一)

    这几天呢,断断续续地在看孙叔华老师的ThinkPHP教程,期间还做了一些其他事情,出去办了点事,总结总结下一学期规划等等,不知不觉间又过去了大半个星期.现在呢,看完了一天的教程,在这里,还是希望稍微总 ...

  4. [机器学习&数据挖掘]朴素贝叶斯数学原理

    1.准备: (1)先验概率:根据以往经验和分析得到的概率,也就是通常的概率,在全概率公式中表现是“由因求果”的果 (2)后验概率:指在得到“结果”的信息后重新修正的概率,通常为条件概率(但条件概率不全 ...

  5. 字符串对象的charAt函数存在的意义

    var style = ""; style[0] //undefined var style = ""; style.charAt(0); //"&q ...

  6. oracle数据库如何创建用户和角色,并给其赋权?

    一.创建用户并赋予权限 1.创建用户 create user wangxiangyu identified by wangxiangyu; 2.赋权 grant dba to wangxiangyu; ...

  7. thymeleaf : EL1050E The arguments (...) for the constructor call are missing

    <a href="list.html" th:href="${#strings.replace(new.href,'{page}',1)}" >MO ...

  8. 七、vue语法补充二(动态组件 & 异步组件、访问元素 & 组件、混入)

    1..sync 修饰符 2.3.0+ 新增 vue 修饰符sync的功能是:当一个子组件改变了一个 prop 的值时,这个变化也会同步到父组件中所绑定.类似于v-model的效果 例子: this.$ ...

  9. opencv 彩色图像分割(inrange)

    灰度图像大多通过算子寻找边缘和区域生长融合来分割图像. 彩色图像增加了色彩信息,可以通过不同的色彩值来分割图像,常用彩色空间HSV/HSI, RGB, LAB等都可以用于分割! 笔者主要介绍inran ...

  10. C++字符串完全指引

    引言 毫无疑问,我们都看到过像 TCHAR, std::string, BSTR 等各种各样的字符串类型,还有那些以 _tcs 开头的奇怪的宏.你也许正在盯着显示器发愁.本指引将总结引进各种字符类型的 ...