BZOJ4407 :于神之怒加强版
题面
戳我
Sol
\(ans=\sum_{d=1}^{N}d^k*\sum_{i=1}^{\lfloor\frac{N}{d}\rfloor}\mu(i)*\lfloor\frac{N}{d*i}\rfloor*\lfloor\frac{M}{d*i}\rfloor\)
\(将d*i换成S\)
\(原式=\sum_{S=1}^{N}(\lfloor\frac{N}{S}\rfloor)*(\lfloor\frac{M}{S}\rfloor)*\sum_{i|S}(\frac{S}{i})^k*\mu(i)\)
\(设f(n)=\sum_{i|n}(\frac{n}{i})^k*\mu(i)\),它是个积性函数,可以线性筛
# include <bits/stdc++.h>
# define RG register
# define IL inline
# define Fill(a, b) memset(a, b, sizeof(a))
using namespace std;
typedef long long ll;
const int _(5e6 + 1), MOD(1e9 + 7);IL ll Read(){char c = '%'; ll x = 0, z = 1;for(; c > '9' || c < '0'; c = getchar()) if(c == '-') z = -1;for(; c >= '0' && c <= '9'; c = getchar()) x = x * 10 + c - '0';return x * z;
}int prime[_], num, mu[_], f[_], k, po[_], s[_];
bool isprime[_];IL int Pow(RG ll x, RG ll y){RG ll ret = 1;for(; y; y >>= 1, x = x * x % MOD) if(y & 1) ret = ret * x % MOD;return ret;
}IL void Prepare(){isprime[1] = 1; s[1] = f[1] = 1;for(RG int i = 2; i < _; ++i){if(!isprime[i]) prime[++num] = i, po[i] = Pow(i, k), f[i] = (po[i] - 1 + MOD) % MOD;for(RG int j = 1; j <= num && i * prime[j] < _; ++j){isprime[i * prime[j]] = 1;if(i % prime[j]) f[i * prime[j]] = 1LL * f[i] * f[prime[j]] % MOD;else{ f[i * prime[j]] = 1LL * f[i] * po[prime[j]] % MOD; break; }}s[i] = (f[i] + s[i - 1]) % MOD;}
}int main(RG int argc, RG char *argv[]){RG ll T = Read(), n, m; k = Read(); Prepare();for(; T; --T){RG ll ans = 0; n = Read(); m = Read();if(n > m) swap(n, m);for(RG ll i = 1, j; i <= n; i = j + 1){j = min(n / (n / i), m / (m / i));(ans += 1LL * (s[j] - s[i - 1] + MOD) % MOD * (n / i) % MOD * (m / i) % MOD) %= MOD;}printf("%lld\n", (ans + MOD) % MOD);}return 0;
}
转载于:https://www.cnblogs.com/cjoieryl/p/8268628.html
BZOJ4407 :于神之怒加强版相关推荐
- bzoj4407 于神之怒加强版(莫比乌斯反演+线性筛)
4407: 于神之怒加强版 Time Limit: 80 Sec Memory Limit: 512 MB Submit: 355 Solved: 174 [Submit][Status][Dis ...
- BZOJ 4407: 于神之怒加强版
4407: 于神之怒加强版 Time Limit: 80 Sec Memory Limit: 512 MB Submit: 560 Solved: 271 [Submit][Status][Dis ...
- BZOJ 4407 于神之怒加强版
题目链接:于神之怒加强版 这个式子还是很妙的,只是我已经思维僵化了 \begin{aligned} &\sum_{i=1}^n\sum_{j=1}^m\gcd(i,j)^k \\ =& ...
- P4449 于神之怒加强版
P4449 于神之怒加强版 推式子 ∑i=1n∑j=1ngcd(i,j)h\sum_{i = 1} ^{n} \sum_{j = 1} ^{n} gcd(i, j) ^ h i=1∑nj=1∑ng ...
- 【LG-P4449】于神之怒加强版
P4449 于神之怒加强版 给定 n , m , k n,m,k n,m,k,计算 ∑ i = 1 n ∑ j = 1 m gcd ( i , j ) k \sum_{i=1}^n \sum_{j ...
- 于神之怒加强版 [Bzoj 4407]
题目地址请点击-- 于神之怒加强版 Description 给定 NN , MM , KK . Input 输入有多组数据,输入数据的第一行两个正整数 TT , KK,代表有 TT 组数据,KK 的意 ...
- GMOJ 4161 / Luogu P4449 于神之怒 (加强版) 题解
于神之怒 (加强版) 题解 Description 求 F ( n , m ) = ∑ i = 1 n ∑ j = 1 m gcd ( i , j ) k F(n,m)=\sum_{i=1}^n\ ...
- 【BZOJ4407】于神之怒加强版
题面 题目分析 \[ \begin{split} \sum\limits_{i=1}^n\sum\limits_{j=1}^mgcd(i,j)^k&=\sum\limits_{d=1}^nd^ ...
- P4449-于神之怒加强版【莫比乌斯反演】
正题 题目链接:https://www.luogu.com.cn/problem/P4449 题目大意 TTT组询问给出n,mn,mn,m求∑i=1n∑j=1mgcd(i,j)k\sum_{i=1}^ ...
- 2017.9.26 于神之怒加强版 失败总结
.这个题直接上反演可以化成: 然后后面的部分是可以预处理的,最简单的预处理是nlogn的,理论能过,但不知为何死活过不了. 所以就需要o(n)来求后面函数的值 设f=∑d|t mu(d)*(T/d) ...
最新文章
- Go并发编程之美-Load/Store操作
- python3 reqeusts后写入excel
- 计算整数n的b进制展开式
- 旋流式沉砂池计算_以高效旋流器为核心的超低成本选煤技术
- 经典的三栏布局:圣杯布局,双飞翼布局,flex布局
- Matlab--三维散点插值成曲面
- (94)FPGA模块例化传递参数(input)
- Atitti 知识图谱构建方法attilax 总结
- 如何破解无线网密码进行上网
- Docker深入浅出系列 | 容器初体验
- excel数据分析 - 39个快捷键&10个操作技巧
- Input系统学习-----move事件的合并
- Shell进阶(三) 交互式脚本 函数 数组 分片 字符串处理
- stringsAsFactors=FALSE是什么意思
- Java 实现多继承
- Android开发——贝塞尔曲线解析
- js中创建桌面网页快捷方式代码
- xie wen ben ri zhi
- 你应该知道的常见的http协议状态
- 蚂蚁森林合种三周年6000+证书