【BZOJ2693】jzptab(莫比乌斯反演)
【BZOJ2693】jzptab(莫比乌斯反演)
题面
讨厌权限题,只能跑到别的OJ上交
和这题是一样的
多组数据
求$$\sum_{i=1}n\sum_{j=1}mlcm(i,j)$$
题解
前面的部分直接看上面的那个链接
\]
其中\(S(x)=1+2+...x=\frac{x(x+1)}{2}\)
令\(T=id\)
\]
设\(f(x)=x^2\mu(x)\),\(g(x)=\frac{T}{x}\)
很显然,这两个都是积性函数
所以,后面的东西也是积性函数
直接线性筛出来就行了
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<set>
#include<map>
#include<vector>
#include<queue>
using namespace std;
#define MOD 100000009
#define MAX 10000000
inline int read()
{
	int x=0,t=1;char ch=getchar();
	while((ch<'0'||ch>'9')&&ch!='-')ch=getchar();
	if(ch=='-')t=-1,ch=getchar();
	while(ch<='9'&&ch>='0')x=x*10+ch-48,ch=getchar();
	return x*t;
}
bool zs[MAX+10];
int sum[MAX+10],pri[MAX],tot;
void pre()
{
	zs[1]=true;sum[1]=1;
	for(int i=2;i<=MAX;++i)
	{
		if(!zs[i])pri[++tot]=i,sum[i]=(i-1ll*i*i%MOD+MOD)%MOD;
		for(int j=1;j<=tot&&i*pri[j]<=MAX;++j)
		{
			zs[i*pri[j]]=true;
			if(i%pri[j]==0){sum[i*pri[j]]=1ll*sum[i]*pri[j]%MOD;break;}
			else sum[i*pri[j]]=1ll*sum[i]*sum[pri[j]]%MOD;
		}
	}
	for(int i=1;i<=MAX;++i)sum[i]=(sum[i-1]+sum[i])%MOD;
}
int n,m;
int main()
{
	pre();
	int T=read();
	while(T--)
	{
		n=read();m=read();
		if(n>m)swap(n,m);
		int i=1,j;
		long long ans=0;
		while(i<=n)
		{
			j=min(n/(n/i),m/(m/i));
			int tt=(1ll*(1+n/i)*(n/i)/2%MOD)*(1ll*(1+m/i)*(m/i)/2%MOD)%MOD;
			ans+=1ll*(sum[j]-sum[i-1]+MOD)%MOD*tt%MOD;
			ans%=MOD;
			i=j+1;
		}
		printf("%lld\n",(ans+MOD)%MOD);
	}
	return 0;
}
【BZOJ2693】jzptab(莫比乌斯反演)的更多相关文章
- BZOJ2693: jzptab(莫比乌斯反演)
		Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 2068 Solved: 834[Submit][Status][Discuss] Descripti ... 
- bzoj2693 jzptab 莫比乌斯反演|题解
		Description Input 一个正整数T表示数据组数 接下来T行 每行两个正整数 表示N.M Output T行 每行一个整数 表示第i组数据的结果 Sample Input 1 4 5 ... 
- 【BZOJ2693】jzptab [莫比乌斯反演]
		jzptab Time Limit: 10 Sec Memory Limit: 512 MB[Submit][Status][Discuss] Description 求 Input 第一行一个 ... 
- 【bzoj2693】jzptab  莫比乌斯反演+线性筛
		题目描述 输入 一个正整数T表示数据组数 接下来T行 每行两个正整数 表示N.M 输出 T行 每行一个整数 表示第i组数据的结果 样例输入 1 4 5 样例输出 122 题解 莫比乌斯反演+线性筛 由 ... 
- [Luogu P1829] [国家集训队]Crash的数字表格 / JZPTAB (莫比乌斯反演)
		题面 传送门:洛咕 Solution 调到自闭,我好菜啊 为了方便讨论,以下式子\(m>=n\) 为了方便书写,以下式子中的除号均为向下取整 我们来颓柿子吧qwq 显然,题目让我们求: \(\l ... 
- 【BZOJ】2693: jzptab 莫比乌斯反演
		[题意]2154: Crash的数字表格 莫比乌斯反演,多组询问,T<=10000. [算法]数论(莫比乌斯反演) [题解]由上一题, $ans=\sum_{g\leq min(n,m)}g\s ... 
- BZOJ 2693: jzptab [莫比乌斯反演 线性筛]
		2693: jzptab Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 1194 Solved: 455[Submit][Status][Discu ... 
- BZOJ 2693: jzptab( 莫比乌斯反演 )
		速度居然#2...目测是因为我没用long long.. 求∑ lcm(i, j) (1 <= i <= n, 1 <= j <= m) 化简之后就只须求f(x) = x∑u( ... 
- luoguP1829 [国家集训队]Crash的数字表格 / JZPTAB(莫比乌斯反演)
		题意 注:默认\(n\leqslant m\). 所求即为:\(\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}lcm(i,j)\) 因为\(i*j=\gcd(i, ... 
- [国家集训队]Crash的数字表格 / JZPTAB  莫比乌斯反演
		---题面--- 题解: $$ans = \sum_{i = 1}^{n}\sum_{j = 1}^{m}{\frac{ij}{gcd(i, j)}}$$ 改成枚举d(设n < m) $$ans ... 
随机推荐
- windows 下编译 OpenSSL1.0.2l 版
			1.需要的软件工具: microsoft visual studio2013(或2010以后其他版本) Perl 软件, 版本为strawberry - perl - 5.26.0.1 - 64bit ... 
- [Python Study Notes]with的使用
			在 Python 2.5 中, with 关键字被加入.它将常用的 try ... except ... finally ... 模式很方便的被复用.看一个最经典的例子: with open('fil ... 
- CSS单行、多行文本溢出显示省略号
			如果实现单行文本的溢出显示省略号小伙伴们应该都知道用text-overflow:ellipsis属性来,当然还需要加宽度width属来兼容部分浏览. 实现方法: overflow: hidden; t ... 
- 【学习笔记】Hibernate 注解 (Y2-1-9)
			Hibernate注解 1.什么是注解在类上或者方法上打上其他类型的类型元数据 @标志 使用过的注解: @override 方法重写 @Test Junit 单元测试 @Before 单元测试 @A ... 
- Android查缺补漏(IPC篇)-- 款进程通讯之AIDL详解
			本文作者:CodingBlock 文章链接:http://www.cnblogs.com/codingblock/p/8436529.html 进程间通讯篇系列文章目录: Android查缺补漏(IP ... 
- Linux常用命令详解(二)  -- 查找常用命令
			locate: 作用:在后台数据库中按文件名搜索,搜索速度更快 命令格式:locate 文件名 选项或参数: -l num(要显示的行数) ... 
- C# Swagger 生成接口文档
			一直听说Swagger是做Web API文档的好工具,这次手里暂时没什么事,类体验下它的强大之处.下面是使用Swashbuckle.net 给asp.net web API添加文档的简要步骤. 参考地 ... 
- 蚂蚁爬杆问题 UVA 10881
			算法入门经典训练指南上的题. 这里有必要讲一下蚂蚁爬杆问题:每只蚂蚁都有一个初始方向,相撞会转向,关键就是相撞的处理,由于速度并不会改变,两只蚂蚁相撞,可以看做,两只蚂蚁穿过对方,继续沿原方向前进,经 ... 
- UVA1600 状态BFS
			刚开是我用了一种很笨的bfs过掉的,后来看到原来还可以三维带状态BFS,觉得是一个不错的思路. d[x][y][k]表示坐标位于(x,y)经过K个障碍到达时的最短路径,当然如果(x,y)处的数字是0就 ... 
- hdu1556 Color the ball 线段树区间染色问题
			都是老套路了,如果n=5,要把区间[1,4]染色,可以递归去染区间[1,3]和区间[4,4],如果区间相等就自加,不相等继续递归寻找对应区间. 打印结果时,把所有到达叶节点包含i的区间值相加,就是最后 ... 
