BZOJ 4407: 于神之怒加强版 [莫比乌斯反演 线性筛]
题意:提前给出\(k\),求\(\sum\limits_{i=1}^n \sum\limits_{j=1}^m gcd(i,j)^k\)
套路推♂倒
\]
是一个\(g = idk * \mu\)啊,单位幂函数和莫比乌斯函数的卷积!
\(g(1) = 1\)
\(g(p) = -1 + p^k\)
因为带着\(\mu\),只有sf才有贡献
所以\(p \mid i\)只能把\(p\)放到\(d^k\)里了,就是\(g(i)\cdot p\)
或者考虑\(g(p^k)\)只有1和p有贡献也可以,直接得到计算公式再递推
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <queue>
using namespace std;
const int N=5e6+5, INF=1e9, P=1e9+7;
#define pii pair<int, int>
#define MP make_pair
#define fir first
#define sec second
typedef long long ll;
inline int read(){
char c=getchar();int x=0,f=1;
while(c<'0'||c>'9'){if(c=='-')f=-1;c=getchar();}
while(c>='0'&&c<='9'){x=x*10+c-'0';c=getchar();}
return x*f;
}
int n, m, k;
int notp[N], p[N], mu[N];
ll pk[N], g[N];
inline ll Pow(ll a, int b) {
ll ans = 1;
for(; b; b>>=1, a=a*a%P)
if(b&1) ans = ans*a%P;
return ans;
}
inline ll powk(int a) {return pk[a] ? pk[a] : pk[a]=Pow(a, k);}
void sieve(int n) {
mu[1] = 1; g[1] = 1;
for(int i=2; i<=n; i++) {
if(!notp[i]) p[++p[0]] = i, mu[i] = -1, g[i] = -1 + powk(i);
for(int j=1; j<=p[0] && i*p[j]<=n; j++) {
int t = i*p[j];
notp[t] = 1;
if(i%p[j] == 0) {
g[t] = g[i]*powk(p[j])%P;
mu[t] = 0;
break;
}
g[t] = g[i]*g[p[j]]%P;
mu[t] = -mu[i];
}
}
for(int i=1; i<=n; i++) g[i] = (g[i] + g[i-1])%P;
}
ll cal(int n, int m) {
ll ans=0; int r;
for(int i=1; i<=n; i=r+1) {
r = min(n/(n/i), m/(m/i));
ans = (ans+ (g[r] - g[i-1]) * (n/i)%P * (m/i)%P )%P;
}
return (ans + P) %P;
}
int main() {
//freopen("in","r",stdin);
int T=read(); k=read();
sieve(N-1);
while(T--) {
n=read(); m=read();
if(n>m) swap(n, m);
printf("%lld\n", cal(n, m));
}
}
BZOJ 4407: 于神之怒加强版 [莫比乌斯反演 线性筛]的更多相关文章
- bzoj 4407 于神之怒加强版 (反演+线性筛)
于神之怒加强版 Time Limit: 80 Sec Memory Limit: 512 MBSubmit: 1184 Solved: 535[Submit][Status][Discuss] D ...
- BZOJ 4407: 于神之怒加强版 莫比乌斯反演 + 线筛积性函数
Description 给下N,M,K.求 Input 输入有多组数据,输入数据的第一行两个正整数T,K,代表有T组数据,K的意义如上所示,下面第二行到第T+1行,每行为两个正整数N,M,其意 ...
- 【bzoj4407】于神之怒加强版 莫比乌斯反演+线性筛
题目描述 给下N,M,K.求 输入 输入有多组数据,输入数据的第一行两个正整数T,K,代表有T组数据,K的意义如上所示,下面第二行到第T+1行,每行为两个正整数N,M,其意义如上式所示. 输出 如题 ...
- BZOJ 4407 于神之怒加强版 (莫比乌斯反演 + 分块)
4407: 于神之怒加强版 Time Limit: 80 Sec Memory Limit: 512 MBSubmit: 1067 Solved: 494[Submit][Status][Disc ...
- 【BZOJ-4407】于神之怒加强版 莫比乌斯反演 + 线性筛
4407: 于神之怒加强版 Time Limit: 80 Sec Memory Limit: 512 MBSubmit: 241 Solved: 119[Submit][Status][Discu ...
- BZOJ.4407.于神之怒加强版(莫比乌斯反演)
题目链接 Description 求\[\sum_{i=1}^n\sum_{j=1}^m\gcd(i,j)^K\ \mod\ 10^9+7\] Solution 前面部分依旧套路. \[\begin{ ...
- BZOJ4407: 于神之怒加强版(莫比乌斯反演 线性筛)
Description 给下N,M,K.求 感觉好迷茫啊,很多变换看的一脸懵逼却又不知道去哪里学.一道题做一上午也是没谁了,, 首先按照套路反演化到最后应该是这个式子 $$ans = \sum_{d ...
- bzoj 2820 YY的GCD - 莫比乌斯反演 - 线性筛
Description 神犇YY虐完数论后给傻×kAc出了一题给定N, M,求1<=x<=N, 1<=y<=M且gcd(x, y)为质数的(x, y)有多少对kAc这种 傻×必 ...
- BZOJ 3309: DZY Loves Math [莫比乌斯反演 线性筛]
题意:\(f(n)\)为n的质因子分解中的最大幂指数,求\(\sum_{i=1}^n \sum_{j=1}^m f(gcd(i,j))\) 套路推♂倒 \[ \sum_{D=1}^n \sum_{d| ...
随机推荐
- Can you find it?(哈希)
题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=2141 Can you find it? Time Limit: 10000/3000 MS (Java ...
- Number Sequence(快速幂矩阵)
题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=1005 Number Sequence Time Limit: 2000/1000 MS (Java/O ...
- EMC题2
易安信笔试题分享:1 protected成员函数能被肿么调用2 “has-a” relationship是指的啥,答案有instance, reference, pointer等...3 int, c ...
- Angular 选项卡
<div ng-init="now=0;" class="nav"> <h4>选项卡</h4> <div > & ...
- 国寿e店/人寿云参会云助理,不去公司就能刷脸考勤打卡?
自从2017年3月平安保险公司实行E行销打卡考勤以来,保险增员迅猛增加,保险业绩也随之水涨船高.年底开始中国人寿保险也陆续开始实行app考勤,有些需要连接公司指定WiFi,或在指定地点方可打卡考勤.不 ...
- Spark性能调优之合理设置并行度
Spark性能调优之合理设置并行度 1.Spark的并行度指的是什么? spark作业中,各个stage的task的数量,也就代表了spark作业在各个阶段stage的并行度! 当分配 ...
- Linux的软件安装(JDK安装,Mysql安装,Tomcat安装)
1.JDK安装 注意:rpm与软件相关命令 相当于window下的软件助手 管理软件 步骤: 1)查看当前Linux系统是否已经安装java 输入 rpm -qa | grep java ps:博主这 ...
- CCF系列之矩阵(201512-5)
试题名称: 矩阵 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 创造一个世界只需要定义一个初状态和状态转移规则. 宏观世界的物体运动规律始终跟物体当前的状态有关,也就是说只要 ...
- vue 的准备项目架构环境配置
一.环境搭建 中国镜像 composer config repo.packagist composer https://packagist.phpcomposer.com 命令 composer in ...
- dotnetcore vue+elementUI 前后端分离架二(后端篇)
前言 最近几年前后端分离架构大行其道,而且各种框架也是层出不穷.本文通过dotnetcore +vue 来介绍 前后端分离架构实战. 涉及的技术栈 服务端技术 mysql 本项目使用mysql 作为持 ...