BZOJ 2693: jzptab( 莫比乌斯反演 )
2015-08-01 18:50
363 查看
![](http://images0.cnblogs.com/blog2015/723896/201508/011842286571069.png)
速度居然#2...目测是因为我没用long long..
求∑ lcm(i, j) (1 <= i <= n, 1 <= j <= m)
化简之后就只须求f(x) = x∑u(d)*d (d | x) 然后就是分块了...
-------------------------------------------------------------------
#include<bits/stdc++.h> using namespace std; typedef long long ll; const int maxn = 10000009;const int MOD = 100000009; bool check[maxn];int f[maxn], prime[maxn], N = 0; void init() { memset(check, false, sizeof check); f[0] = 0; f[1] = 1; for(int i = 2; i < maxn; i++) { if(!check[i]) { prime[N++] = i; f[i] = ll(i) * (1 - i) % MOD; } for(int j = 0; j < N && ll(i) * prime[j] < maxn; j++) { check[i * prime[j]] = true; if(i % prime[j]) f[i * prime[j]] = ll(f[i]) * f[prime[j]] % MOD; else { f[i * prime[j]] = ll(prime[j]) * f[i] % MOD; break; } } } for(int i = 1; i < maxn; i++) f[i] = (f[i] + f[i - 1]) % MOD;} inline int sum(int a, int b) { return (ll(a) * (a + 1) / 2 % MOD) * (ll(b) * (b + 1) / 2 % MOD) % MOD;} void work(int x, int y) { if(x > y) swap(x, y); int ans = 0; for(int L = 1; L <= x; L++) { int R = min(x / (x / L), y / (y / L)); (ans += 1ll * sum(x / L, y / L) * (f[R] - f[L - 1]) % MOD) %= MOD; L = R; } printf("%d\n", (ans + MOD) % MOD);} int main() { init(); int t; scanf("%d", &t); while(t--) { int x, y; scanf("%d%d", &x, &y); work(x, y); } return 0;}-------------------------------------------------------------------
2693: jzptab
Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 602 Solved: 237
[Submit][Status][Discuss]
Description
![](http://www.lydsy.com/JudgeOnline/upload/201204/fa.jpg)
Input
一个正整数T表示数据组数
接下来T行 每行两个正整数 表示N、MOutput
T行 每行一个整数 表示第i组数据的结果Sample Input
14 5
Sample Output
122HINT
T <= 10000
N, M<=10000000
HINT
Source
版权所有者: 倪泽堃相关文章推荐
- LA4255 Guess (拓扑排序)
- IOS开发之多线程队列
- POJ 2749 && HDU 1815 Building roads(2-SAT+二分)
- 使用core dump查看程序运行异常
- Java_Web三大框架之Hibernate+jsp+selvect+HQL注册用户
- 经验分享:多屏复杂动画CSS技巧三则
- 解决 Boot Camp 虚拟机升级到 Windows 10 后 Parallels Desktop 不能识别的问题
- Longest Common Prefix
- 归并排序模板
- 十五天精通WCF——终结篇 那些你需要注意的坑
- 南沙政府应急系统之GIS一张图(arcgis api for flex)讲解(一)GIS一张图的系统开发环境以及flexviewer框架
- hdu 1556
- 乘积最大
- 做嵌入式经典网站!(转)
- 关于Javascript变量类型的一些注意点
- CSS中的属性选择符和结构化伪类
- C语言面试题
- 解析xml
- Leetcode Isomorphic Strings
- c# 反射类字段