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

Input
Output
#include<bits/stdc++.h>
#define ll long long
#define maxn 5000003
#define N 5000001
using namespace std;
const ll mod=1000000007;
namespace IO
{
void setIO(string s)
{
string in=s+".in";
freopen(in.c_str(),"r",stdin);
}
void shut()
{
fclose(stdin);
fclose(stdout);
}
};
ll qpow(ll base,ll o)
{
ll tmp=1;
while(o)
{
if(o&1)tmp=1ll*tmp*base%mod;
base=base*base%mod;
o>>=1;
}
return tmp;
}
int k,cnt;
int mu[maxn],vis[maxn],prime[maxn];
ll h[maxn],g[maxn];
void prepare()
{
mu[1]=h[1]=1;
for(int i=2;i<=N;++i)
{
if(!vis[i]) g[i]=qpow(i,k), prime[++cnt]=i,mu[i]=-1,h[i]=(g[i]-1+mod)%mod;
for(int j=1;j<=cnt&&1ll*prime[j]*i<=N;++j)
{
vis[i*prime[j]]=1;
if(i%prime[j]==0)
{
mu[i*prime[j]]=0;
h[i*prime[j]]=(h[i]*g[prime[j]])%mod;
break;
}
mu[i*prime[j]]=-mu[i];
h[i*prime[j]]=(h[i]*h[prime[j]])%mod;
}
}
for(int i=1;i<=N;++i) h[i]=(h[i-1]+h[i]+mod)%mod;
}
ll work(int n,int m)
{
ll re=0,tmp=0;
int i,j;
for(i=1;i<=n;i=j+1)
{
j=min(n/(n/i), m/(m/i));
tmp=(h[j]-h[i-1]+mod)%mod*(n/i)%mod*(m/i)%mod;
re=(re+tmp+mod)%mod;
}
return re;
}
int main()
{
//IO::setIO("input");
int T,n,m;
scanf("%d%d",&T,&k);
prepare();
while(T--)
{
scanf("%d%d",&n,&m);
if(n>m) swap(n,m);
printf("%lld\n",work(n,m));
}
//IO::shut();
return 0;
}
BZOJ 4407: 于神之怒加强版 莫比乌斯反演 + 线筛积性函数的更多相关文章
- BZOJ 4407: 于神之怒加强版 [莫比乌斯反演 线性筛]
题意:提前给出\(k\),求\(\sum\limits_{i=1}^n \sum\limits_{j=1}^m gcd(i,j)^k\) 套路推♂倒 \[ \sum_{D=1}^n \sum_{d|D ...
- P6222 「简单题」加强版 莫比乌斯反演 线性筛积性函数
LINK:简单题 以前写过弱化版的 不过那个实现过于垃圾 少预处理了一个东西. 这里写一个实现比较精细了. 最后可推出式子:\(\sum_{T=1}^nsum(\frac{n}{T})\sum_{x| ...
- BZOJ 4407 于神之怒加强版 (莫比乌斯反演 + 分块)
4407: 于神之怒加强版 Time Limit: 80 Sec Memory Limit: 512 MBSubmit: 1067 Solved: 494[Submit][Status][Disc ...
- 莫比乌斯反演/线性筛/积性函数/杜教筛/min25筛 学习笔记
最近重新系统地学了下这几个知识点,以前没发现他们的联系,这次总结一下. 莫比乌斯反演入门:https://blog.csdn.net/litble/article/details/72804050 线 ...
- bzoj 4407 于神之怒加强版 (反演+线性筛)
于神之怒加强版 Time Limit: 80 Sec Memory Limit: 512 MBSubmit: 1184 Solved: 535[Submit][Status][Discuss] D ...
- BZOJ.4407.于神之怒加强版(莫比乌斯反演)
题目链接 Description 求\[\sum_{i=1}^n\sum_{j=1}^m\gcd(i,j)^K\ \mod\ 10^9+7\] Solution 前面部分依旧套路. \[\begin{ ...
- 【BZOJ-4407】于神之怒加强版 莫比乌斯反演 + 线性筛
4407: 于神之怒加强版 Time Limit: 80 Sec Memory Limit: 512 MBSubmit: 241 Solved: 119[Submit][Status][Discu ...
- 【bzoj4407】于神之怒加强版 莫比乌斯反演+线性筛
题目描述 给下N,M,K.求 输入 输入有多组数据,输入数据的第一行两个正整数T,K,代表有T组数据,K的意义如上所示,下面第二行到第T+1行,每行为两个正整数N,M,其意义如上式所示. 输出 如题 ...
- BZOJ4407: 于神之怒加强版(莫比乌斯反演 线性筛)
Description 给下N,M,K.求 感觉好迷茫啊,很多变换看的一脸懵逼却又不知道去哪里学.一道题做一上午也是没谁了,, 首先按照套路反演化到最后应该是这个式子 $$ans = \sum_{d ...
随机推荐
- Winform 开源控件库( Sheng.Winform.Controls)
升讯威 .Net WinForm 控件库提供了超过15种 Winform 控件,你可以直接使用本控件库,更可以通过本控件库学到 Winform 控件开发的方法和理念. 你可以学习到: 如何基于 Con ...
- node+express 中安装nodemon实时更新server.js
每次启动node server.js,有一个缺点,每次server.js文件有改动时,必须重新执行指令node server.js,新的代码才会起作用 解决方案1 全局安装 npm install s ...
- linux优化
优化linux启动项 1. 使用ntsysv工具讲不需要的服务关闭 2. 默认启动服务可以只保留必要的服务 3. free -m 以m为单位 4. 删除不必要的用户: 5. cp /etc/passw ...
- Node.js实战8:可用于压缩、加密的zlib。
zlib是nodejs内置的模块,有deflate.inflate函数,使用的是gzip算法,可用于压缩和解压,也可用于数据加密.解密. 如下示例: var zlib = require(" ...
- go工具链
1 编辑器 goland 2 GOPATH GOPATH是go的一个环境变量,它以绝对路径提供go的工作目录. go工程的源码存放在${GOPATH}/src目录下,go编译过程中生成的中间文件存放在 ...
- iBatis框架之配置文件之注意点之总结
1.配置文件sqlMap.xml中需要注意的点 比如: <?xml version="1.0" encoding="UTF-8" ?> <!D ...
- maven build失败 (Failure to find io.renren:renren-security:pom:3.2.0 in http://maven.aliyun.com/nexus/content/groups/public/ was cached in the local repository...)
今天mvn clean package一个子工程(renren-admin)时报错: Failed to execute goal on project renren-admin: Could n ...
- webstorm 2019 去掉编辑器右侧白线
第一步:打开设置 第二步: 第三部:apply 关闭设置
- 【记录】java解析xml文件
最近新需求要解析xml格式的日志文件,解析完之后数据库落地. 经过度娘搜索,写了demo,现记录如下: 测试XML <?xml version="1.0" encoding= ...
- 微信支付MD5签名算法C#版,ASCII码字典序排序0,A,B,a,b
/// <summary> /// 微信支付MD5签名算法,ASCII码字典序排序0,A,B,a,b /// </summary> /// <param name=&qu ...