学到了好多东西啊这题。。。

https://blog.csdn.net/sdfzyhx/article/details/72968468

 #include<bits/stdc++.h>
using namespace std;
const int N=1e6+,mod=1e9+;
typedef long long ll;
ll miu[N],v[N],p[N],cnt,sum1[N],sum2[N],mi1[N],mi2[N],h[N],g[N],f[N],T,n;
ll inc(ll a,ll b)
{
a=a+b;
if(a>mod)a%=mod;
return a;
}
ll dec(ll a,ll b)
{
a=a-b;
if(a<)a+=mod;
return a%mod;
}
ll qmod(ll x,ll y)
{
int ans=;
while(y)
{
if(y&)ans=1ll*ans*x%mod;
x=1ll*x*x%mod;y>>=;
}
return ans;
}
void init()
{
miu[]=sum1[]=sum2[]=mi1[]=mi2[]=;
for(int i=;i<=1e6;++i)
{
if(!v[i])
{
p[++cnt]=i;
miu[i]=-;
sum1[i]=i+;
sum2[i]=inc(1ll*i*i%mod+i,);
mi1[i]=mi2[i]=i;
}
for(int j=;j<=cnt&&i*p[j]<=1e6;++j)
{
int x=i*p[j];v[x]=;
if(i%p[j])
{
mi1[x]=mi2[x]=p[j];
miu[x]=-miu[i];
sum1[x]=1ll*sum1[i]*sum1[p[j]]%mod;
sum2[x]=1ll*sum2[i]*sum2[p[j]]%mod;
}
else
{
mi1[x]=p[j];
mi2[x]=1ll*mi2[i]*p[j]%mod;
sum1[x]=inc(sum1[i],1ll*p[j]*mi2[i]%mod*sum1[i/mi2[i]]%mod);//求约数和
sum2[x]=inc(sum2[i],1ll*inc(1ll*mi2[i]*mi2[i]%mod*mi1[i]%mod,1ll*mi2[i]*mi2[i]%mod*mi1[i]%mod*mi1[i]%mod)*sum2[i/mi2[i]]%mod);//求平方约数和
break;
}
}
}
for(int i=;i<=1e6;++i)
{
h[i]=inc(h[i-],sum1[i]);
g[i]=1ll*i*sum1[i]%mod*h[i]%mod;
sum2[i]=1ll*sum2[i]*i%mod;
sum2[i]=inc(sum2[i],sum2[i-]);
}
for(int i=;i<=1e6;++i)
{ for(int j=i,k=;j<=1e6;j+=i,k++)
f[j]=inc(f[j],1ll*miu[i]%mod*i%mod*i%mod*g[k]%mod);
f[i]=inc(f[i],f[i-]);
}
return;
}
int main()
{
init();scanf("%d",&T);
for(int i=;i<=T;++i)
{
scanf("%d",&n);
printf("Case #%d: %lld\n",i,(dec(2ll*f[n]%mod,sum2[n])+mod)%mod);
}
return ;
}

51nod 1584加权约数和的更多相关文章

  1. 51NOD 1584 加权约数和 [莫比乌斯反演 转化 Trick]

    1584 加权约数和 题意:求\(\sum_{i=1}^{N} \sum_{j=1}^{N} {\max(i,j)\cdot \sigma(i\cdot j)}\) 多组数据\(n \le 10^6, ...

  2. 51nod 1584 加权约数和 约数和函数小trick 莫比乌斯反演

    LINK:加权约数和 我曾经一度认为莫比乌斯反演都是板子题. 做过这道题我认输了 不是什么东西都是板子. 一个trick 设\(s(x)\)为x的约数和函数. 有 \(s(i\cdot j)=\sum ...

  3. [51Nod 1584] 加权约数和

    Description 在整理以前的试题时,他发现了这样一道题目:"求 \(\sum\sigma(i)\),其中 \(1≤i≤N\),\(σ(i)\) 表示 \(i\) 的约数之和.&quo ...

  4. [51 Nod 1584] 加权约数和

    题意 求∑i=1N∑j=1Nmax(i,j)⋅σ1(ij)\large \sum_{i=1}^N\sum_{j=1}^Nmax(i,j)\cdot\sigma_1(ij)i=1∑N​j=1∑N​max ...

  5. 【51Nod1584】加权约数和(数论)

    [51Nod1584]加权约数和(数论) 题面 51Nod 题解 要求的是\[\sum_{i=1}^n\sum_{j=1}^n max(i,j)\sigma(ij)\] 这个\(max\)太讨厌了,直 ...

  6. Solution -「51nod 1584」加权约数和

    \(\mathcal{Description}\)   Link.   令 \(\sigma(n)\) 为 \(n\) 的约数之和.求: \[\sum_{i=1}^n\sum_{j=1}^n\max\ ...

  7. 51Nod1584 加权约数和

    这题其实就是反演一波就好了(那你还推了一下午+一晚上),不过第一次碰到\(O(n\log n)\)预处理分块和式的方法-- 不知为啥我跟唐教主的题解推的式子不太一样--(虽然本质上可能是相同的吧) 那 ...

  8. 51nod1584加权约数和

    题目大意: 求: \[ \sum_{i-1}^n\sum_{j=1}^nmax(i,j)\sigma(i*j) \] 题解 对于这个\(\max\),套路的把它转化成: \[ 2*\sum_{i=1} ...

  9. Note -「Mobius 反演」光速入门

    目录 Preface 数论函数 积性函数 Dirichlet 卷积 Dirichlet 卷积中的特殊函数 Mobius 函数 & Mobius 反演 Mobius 函数 Mobius 反演 基 ...

随机推荐

  1. linux解压

    tar –xvf file.tar //解压 tar包tar -xzvf file.tar.gz //解压tar.gztar -xjvf file.tar.bz2 //解压 tar.bz2tar –x ...

  2. 转自知乎大神----JS 的 new 到底是干什么的?

    大部分讲 new 的文章会从面向对象的思路讲起,但是我始终认为,在解释一个事物的时候,不应该引入另一个更复杂的事物. 今天我从「省代码」的角度来讲 new. --------------------- ...

  3. 【51Nod】1510 最小化序列 贪心+动态规划

    [题目]1510 最小化序列 [题意]给定长度为n的数组A和数字k,要求重排列数组从而最小化: \[ans=\sum_{i=1}^{n-k}|A_i-A_{i+k}|\] 输出最小的ans,\(n \ ...

  4. 第6月第6天 opengles 三角形

    1. http://blog.csdn.net/u010963658/article/details/52691578 2.多张图 https://www.oschina.net/question/2 ...

  5. Android学习笔记——从源码看Handler的处理机制

    可能是出于性能的考虑,Android的UI操作是非线程安全的. 也就是说,如果你在一个新开的线程中直接操作UI是会引发异常的. 但是,Android又规定,不要去阻塞UI线程!否则,轻者引起程序卡顿, ...

  6. CSS3设置内容超过一定长度后自动折行

    在用编辑器保存的数据到数据库的时候经常是在我们的内容前后加一个P标签,但是出来之后是一行,有时候会超过边框的宽度,所以研究了如何折行,如下代码: <!DOCTYPE html> <h ...

  7. linux压缩日志并删除原始文件

    下面的脚本可以压缩日志并删除原始文件 #!/bin/bash yesterday=`date -d '1days ago' +%Y_%m_%d` cd $ find . -name "*$y ...

  8. python格式化输出【转】

    今天写代码时,需要统一化输出格式进行,一时想不起具体细节,用了最笨的方法,现在讲常见的方法进行一个总结. 一.格式化输出 1.整数的输出 直接使用'%d'代替可输入十进制数字: >>> ...

  9. 微服务架构及Eureka简介

    一.微服务架构 服务提供者.服务消费者.服务发现组件这三者之间的关系: 各个微服务在启动时,将自己的网络地址等信息注册到服务发现组件中,服务发现组件会存储这些信息. 服务消费者可从服务发现组件查询服务 ...

  10. yum安装软件报错:curl#6 - "Could not resolve host: mirrorlist.centos.org; Temporary failure in name resolut

    # yum install -y epel-release Loaded plugins: fastestmirror Repository base is listed more than once ...