LINK:简单题

以前写过弱化版的 不过那个实现过于垃圾 少预处理了一个东西。

这里写一个实现比较精细了。

最后可推出式子:\(\sum_{T=1}^nsum(\frac{n}{T})\sum_{x|T}(\frac{T}{x})^kx^k\mu(\frac{T}{x})^2\mu(x)\)

其中 \(sum(x)=\sum_{i=1}^{x}\sum_{j=1}^{x}(i+j)^k\)

先看前面的那项 由于是完全积性函数先筛出\(i^k\)复杂度可近乎是O(n)的。

考虑上面的式子怎么求?再设\(w_x=\sum_{i=1}^x(i+x)^k\)

显然 \(w_x=w_{x-1}+(2x-1)^k+(2x)^k-x^k\)

显然 \(sum_x=sum_{x-1}+2w_x-(2x)^k\)

后面那项 考虑积性函数筛出 可以发现当其中的质因子p的指数>=3时为0.

那么每次可以特判一下是否为2 简单计算一下即可。

有点卡空间 所以就把 sum w 前缀和数组给整到一块了/cy

const int MAXN=10000010,maxn=2000010;
int T,n,top,k;
int p[maxn];
bitset<MAXN<<1>v;
ui s[MAXN<<1],b[MAXN<<1];
inline ui ksm(ui b,int p)
{
ui cnt=1;
while(p)
{
if(p&1)cnt=cnt*b;
p=p>>1;b=b*b;
}
return cnt;
}
inline void prepare()
{
int m=n<<1;b[1]=s[1]=1;
rep(2,m,i)
{
if(!v[i])
{
p[++top]=i;
s[i]=ksm(i,k);
b[i]=s[i]*i-s[i];
}
rep(1,top,j)
{
if(p[j]>m/i)break;
v[i*p[j]]=1;
s[i*p[j]]=s[i]*s[p[j]];
if(i%p[j]==0)
{
if(i/p[j]%p[j]!=0)b[i*p[j]]=s[p[j]]*s[p[j]]*p[j]*(-1)*b[i/p[j]];
break;
}
b[i*p[j]]=b[i]*b[p[j]];
}
}
ui las=0;
rep(1,n,i)
{
b[i]+=b[i-1];
s[i]=las+s[2*i-1]+s[i<<1]-s[i];
las=s[i];s[i]=-s[i<<1]+s[i-1]+2*s[i];
}
}
int main()
{
//freopen("1.in","r",stdin);
get(T);get(n);get(k);
prepare();
while(T--)
{
get(n);ui ans=0;
int w1,ww;
for(int i=1;i<=n;i=ww+1)
{
w1=n/i;ww=n/w1;
ans+=s[w1]*(b[ww]-b[i-1]);
}
printf("%u\n",ans);
}
return 0;
}

P6222 「简单题」加强版 莫比乌斯反演 线性筛积性函数的更多相关文章

  1. 莫比乌斯反演/线性筛/积性函数/杜教筛/min25筛 学习笔记

    最近重新系统地学了下这几个知识点,以前没发现他们的联系,这次总结一下. 莫比乌斯反演入门:https://blog.csdn.net/litble/article/details/72804050 线 ...

  2. BZOJ 4407: 于神之怒加强版 莫比乌斯反演 + 线筛积性函数

    Description 给下N,M,K.求     Input 输入有多组数据,输入数据的第一行两个正整数T,K,代表有T组数据,K的意义如上所示,下面第二行到第T+1行,每行为两个正整数N,M,其意 ...

  3. 【bzoj4407】于神之怒加强版 莫比乌斯反演+线性筛

    题目描述 给下N,M,K.求 输入 输入有多组数据,输入数据的第一行两个正整数T,K,代表有T组数据,K的意义如上所示,下面第二行到第T+1行,每行为两个正整数N,M,其意义如上式所示. 输出 如题 ...

  4. 【BZOJ-4407】于神之怒加强版 莫比乌斯反演 + 线性筛

    4407: 于神之怒加强版 Time Limit: 80 Sec  Memory Limit: 512 MBSubmit: 241  Solved: 119[Submit][Status][Discu ...

  5. BZOJ 4407: 于神之怒加强版 [莫比乌斯反演 线性筛]

    题意:提前给出\(k\),求\(\sum\limits_{i=1}^n \sum\limits_{j=1}^m gcd(i,j)^k\) 套路推♂倒 \[ \sum_{D=1}^n \sum_{d|D ...

  6. BZOJ4407: 于神之怒加强版(莫比乌斯反演 线性筛)

    Description 给下N,M,K.求 感觉好迷茫啊,很多变换看的一脸懵逼却又不知道去哪里学.一道题做一上午也是没谁了,, 首先按照套路反演化到最后应该是这个式子 $$ans = \sum_{d ...

  7. 线性筛积性函数+反演T套路——bzoj4407

    #include<bits/stdc++.h> using namespace std; #define ll long long #define mod 1000000007 #defi ...

  8. 【bzoj2693】jzptab 莫比乌斯反演+线性筛

    题目描述 输入 一个正整数T表示数据组数 接下来T行 每行两个正整数 表示N.M 输出 T行 每行一个整数 表示第i组数据的结果 样例输入 1 4 5 样例输出 122 题解 莫比乌斯反演+线性筛 由 ...

  9. 【bzoj2694】Lcm 莫比乌斯反演+线性筛

    题目描述 求$\sum\limits_{i=1}^n\sum\limits_{j=1}^m|\mu(gcd(i,j))|lcm(i,j)$,即$gcd(i,j)$不存在平方因子的$lcm(i,j)$之 ...

随机推荐

  1. css3实现背景颜色渐变,文字颜色渐变,边框颜色渐变

    css3的渐变可以使用2个或者多个指定的颜色之间显示平稳的过渡的效果.这篇文章主要介绍下css3实现背景颜色渐变,文字颜色渐变,边框颜色渐变的方法,以便大家学习参考! 1.css背景颜色渐变 代码: ...

  2. css/html 空格,html空格符的显示、标示方式【html空格代码】

    在html里面空格的话,你直接敲打出来的空格是不可以的,下面将通过html和css中设置显示空格的实现总结: Html中空格 符号 编号 描述      不断行的空白(1个字符宽度), 不换行空格 全 ...

  3. MySQL常规操作

    数据库的相关概念 一.数据库的好处 1.可以持久化数据到本地 2.结构化查询 二.数据库的常见概念 ★ 1.DB:数据库,存储数据的容器 2.DBMS:数据库管理系统,又称为数据库软件或数据库产品,用 ...

  4. Linux进程监控命令

    最近使用centos在建站,没有用市面上的什么服务商的服务器,自己用树莓派3B+建了这个博客.但是发现经常宕机,所以想看看服务器在干什么,百度了很久,发现vmstat命令不错,拿出来推荐推荐. 这是我 ...

  5. HDFS读写流程(重点)

    @ 目录 一.写数据流程 举例: 二.异常写流程 读数据流程 一.写数据流程 ①服务端启动HDFS中的NN和DN进程 ②客户端创建一个分布式文件系统客户端,由客户端向NN发送请求,请求上传文件 ③NN ...

  6. Talk About AWS Aurora for MySQL max_connections parameter Calculation | 浅谈AWS Aurora for MySQL数据库中 max_connections参数的计算

    1. The Problem | 现象 When connect to the product environment database of my company, the Navicat show ...

  7. JVM中栈的frames详解

    目录 简介 JVM中的栈 Frame Local Variables本地变量 Operand Stacks Dynamic Linking动态链接 方法执行完毕 简介 我们知道JVM运行时数据区域专门 ...

  8. Python List comprehension列表推导式

    http://blog.chinaunix.net/uid-28631822-id-3488324.html 具体内容需要进一步学习

  9. Python and or not 优先级

    not > and >or 1 or 5 and 4: -> 1 or 4-> 1 (1 or 5) and 4: ->1 and 4 ->4 x or y . x ...

  10. MapReduce计算框架的核心编程思想

    @ 目录 概念 MapReduce中常用的组件 概念 Job(作业) : 一个MapReduce程序称为一个Job. MRAppMaster(MR任务的主节点): 一个Job在运行时,会先启动一个进程 ...