题意:询问满足$1\leq x\leq n,1\leq y\leq m$且$x,y$均无平方因子的有序对$(x,y)$的$[x,y]$之和,多组数据

以下假设$n\leq m$,设$S(n)=\frac{n(n+1)}2$,$r(n)$表示$n$的最大无平方因子

$\begin{align*}\sum\limits_{i=1}^n\sum\limits_{j=1}^m\mu^2\left((i,j)\right)[i,j]&=\sum\limits_{d=1}^nd\mu^2(d)\sum\limits_{i=1}^{\left\lfloor\frac nd\right\rfloor}\sum\limits_{j=1}^{\left\lfloor\frac md\right\rfloor}[i,j][(i,j)=1]\\&=\sum\limits_{d=1}^nd\mu^2(d)\sum\limits_{e=1}^{\left\lfloor\frac nd\right\rfloor}e\mu(e)\sum\limits_{i=1}^{\left\lfloor\frac n{de}\right\rfloor}\sum\limits_{j=1}^{\left\lfloor\frac m{de}\right\rfloor}[i,j]\\&=\sum\limits_{T=1}^nT\sum\limits_{d|T}\mu^2(d)\mu\left(\frac Td\right)\sum\limits_{i=1}^{\left\lfloor\frac nT\right\rfloor}\sum\limits_{j=1}^{\left\lfloor\frac mT\right\rfloor}[i,j]\end{align*}$

暂停一下,先化一下其中的一部分式子

1.$G(n)=\sum\limits_{d|n}\mu^2(d)\mu\left(\frac nd\right)$

设$n=a^2b$,其中$\mu(b)\ne0$,那么仅当$d=ac$且$(a,c)=1$时$\mu^2(d)\mu\left(\frac nd\right)\ne0$(若$a\nmid d$则$\frac nd$含来自$a$的平方因子,若$(a,c)\ne1$则$d$含平方因子),此时$G(n)=\sum\limits_{c|b}\mu\left(\frac{a^2b}{ac}\right)=\mu(a)\sum\limits_{c|b}\mu\left(\frac bc\right)=\mu(a)[b=1]$,这说明当$n$为完全平方数时,$G(n)=\mu\left(\sqrt n\right)$,否则$G(n)=0$

2.$F(n,m)=\sum\limits_{i=1}^n\sum\limits_{j=1}^m[i,j]$

直接把jzptab的式子搬过来,$F(n,m)=\sum\limits_{T=1}^nTS\left(\left\lfloor\frac nT\right\rfloor\right)S\left(\left\lfloor\frac mT\right\rfloor\right)\sum\limits_{e|T}e\mu(e)$

这里我们每次求答案都要求很多次$F$,所以还要继续推下去

$Q(n)=\sum\limits_{e|n}e\mu(e)$

首先显然$Q(n)=Q(r(n))$,因为$n$的平方因子对答案没有贡献,接下来考虑$n=r(n)$的情况,设$n=\prod\limits_{i=1}^kp_i$

当$n$为质数时$Q(n)=1-n$,因为$Q$是个积性函数,所以$Q(n)=\prod\limits_{i=1}^k(1-p_i)=(-1)^k\varphi(n)=\mu(n)\varphi(n)$,即是说对于一般的$n$有$Q(n)=\mu(r(n))\varphi(r(n))$

把以上两个结果代入到开始时的式子中,得到$\sum\limits_{p=1}^{\left\lfloor\sqrt n\right\rfloor}p^2\mu(p)\sum\limits_{q=1}^{\left\lfloor\frac n{p^2}\right\rfloor}qQ(q)S\left(\left\lfloor\frac n{p^2q}\right\rfloor\right)S\left(\left\lfloor\frac m{p^2q}\right\rfloor\right)$

枚举$T=p^2q$,得到$\sum\limits_{T=1}^nTS\left(\left\lfloor\frac nT\right\rfloor\right)S\left(\left\lfloor\frac mT\right\rfloor\right)\sum\limits_{p^2|T}\mu(p)Q\left(\frac T{p^2}\right)$

我们要预处理$D(n)=\sum\limits_{p^2|n}\mu(p)Q\left(\frac n{p^2}\right)$,这个直接枚举$p$去更新$p^2$的倍数即可,时间复杂度为$O\left(n\sum\limits_{i=1}^{\left\lfloor\sqrt n\right\rfloor}\frac1{i^2}\right)=O(n)$

总时间复杂度$O\left(n+T\sqrt n\right)$,这题还是挺棒的==

一个小小的trick:我们可以算出答案的$4$倍$\bmod2^{32}$的值,最后$\div4$即可,这样在求$S(n)$的时候不用$\div2$而且可以全程unsigned

#include<stdio.h>
typedef unsigned uint;
const int T=4000010;
int min(int a,int b){return a<b?a:b;}
void swap(int&a,int&b){a^=b^=a^=b;}
int pr[T+10],r[T+10],mu[T+10],phi[T+10];
bool np[T+10];
uint D[T+10];
void sieve(){
	int i,j,M;
	M=0;
	r[1]=1;
	mu[1]=1;
	phi[1]=1;
	for(i=2;i<=T;i++){
		if(!np[i]){
			pr[++M]=i;
			r[i]=i;
			mu[i]=-1;
			phi[i]=i-1;
		}
		for(j=1;j<=M&&i*pr[j]<=T;j++){
			np[i*pr[j]]=1;
			if(i%pr[j]==0){
				r[i*pr[j]]=r[i];
				phi[i*pr[j]]=phi[i]*pr[j];
				break;
			}
			r[i*pr[j]]=r[i]*pr[j];
			mu[i*pr[j]]=-mu[i];
			phi[i*pr[j]]=phi[i]*(pr[j]-1);
		}
	}
	for(i=1;i*i<=T;i++){
		if(mu[i]){
			for(j=i*i;j<=T;j+=i*i)D[j]+=mu[i]*mu[r[j/(i*i)]]*phi[r[j/(i*i)]];
		}
	}
	for(i=1;i<=T;i++)D[i]=D[i]*i;
	for(i=1;i<=T;i++)D[i]+=D[i-1];
}
uint S(uint n){return n*(n+1);}
uint solve(int n,int m){
	uint s;
	int i,nex;
	for(i=1;i<=n;i=nex+1){
		nex=min(n/(n/i),m/(m/i));
		s+=(D[nex]-D[i-1])*S(n/i)*S(m/i);
	}
	return s;
}
int main(){
	sieve();
	int T,n,m;
	scanf("%d",&T);
	while(T--){
		scanf("%d%d",&n,&m);
		if(n>m)swap(n,m);
		printf("%u\n",solve(n,m)>>2);
	}
}

[CODECHEF]LCM的更多相关文章

  1. scau 2015寒假训练

    并不是很正规的.每个人自愿参与自愿退出,马哥找题(马哥超nice么么哒). 放假第一周与放假结束前一周 2015-01-26 http://acm.hust.edu.cn/vjudge/contest ...

  2. CodeChef Sereja and LCM(矩阵快速幂)

    Sereja and LCM   Problem code: SEALCM   Submit All Submissions   All submissions for this problem ar ...

  3. CC Subarray LCM (数学)

    题目连接:http://www.codechef.com/problems/SUBLCM 题意:给定一个序列,求最长连续子序列满足 LCM(Ai,Ai+1...Aj) =Ai*Ai+1*...*Aj. ...

  4. Codechef September Challenge 2018 游记

    Codechef September Challenge 2018 游记 Magician versus Chef 题目大意: 有一排\(n(n\le10^5)\)个格子,一开始硬币在第\(x\)个格 ...

  5. LCM性质 + 组合数 - HDU 5407 CRB and Candies

    CRB and Candies Problem's Link Mean: 给定一个数n,求LCM(C(n,0),C(n,1),C(n,2)...C(n,n))的值,(n<=1e6). analy ...

  6. CodeBlocks及LCM应用

    以下是在开发过程中遇到的一些细节点: 1)called after throwing an instance of std::bad_alloc 此问题是由于publish(data),当中data赋 ...

  7. 【BZOJ-3514】Codechef MARCH14 GERALD07加强版 LinkCutTree + 主席树

    3514: Codechef MARCH14 GERALD07加强版 Time Limit: 60 Sec  Memory Limit: 256 MBSubmit: 1288  Solved: 490 ...

  8. LCM 轻量级通信组件

    LCM和ZMQ比较 http://www.doc88.com/p-6711552253536.html 基于LCM和ZeroMQ的进程间通信研究 2.简介 LCM(Lightweight Commuc ...

  9. uva12546. LCM Pair Sum

    uva12546. LCM Pair Sum One of your friends desperately needs your help. He is working with a secret ...

随机推荐

  1. Can you answer these queries?(HDU4027+势能线段树)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4027 题目: 题意:n个数,每次区间更新将其数值变成它的根号倍(向下取整),区间查询数值和. 思路:易 ...

  2. css文本垂直水平居中

    一.单行文本居中 .content{ height:100px; line-height:100px; text-align:center; border:1px solid red; } 效果图 二 ...

  3. Arduino 舵机sg90电位器实现转动方向控制

    /* Sweep*/ #include <Servo.h> int potpin = 0;//电位器接到A0 int val; //存储电位器读取的数值 Servo myservo//定义 ...

  4. 20179205《Linux内核原理与分析》第一周作业

    输出 shiyanlou 图形字符的命令banner: 新建用户wangyazhe,输入密码不会显示出来: 利用sudo adduser添加一个用户 loutest,mkdir创建一个新的文件夹opt ...

  5. 用selenium 模块控制浏览器

    11.8 用selenium 模块控制浏览器selenium 模块让Python 直接控制浏览器,实际点击链接,填写登录信息,几乎就像是有一个人类用户在与页面交互.与Requests 和Beautif ...

  6. mysql连接池优化笔记

    中间件mycat是一个高性能的分表分库读写分离的中间件,但配置不好的情况会出现很多性能问题. 1.mycat-web的监控的准确性有问题,1.6-RELEASE  ,1.0-SNAPSHOT (web ...

  7. 【LabVIEW技巧】你可以不懂OOP,却不能不懂封装

    前言 大多数写LabVIEW程序的工程师都不是一个纯软的工程师,很多做硬件的.做机械的.甚至学化学的也会学习LabVIEW. 由于主要重心不在软件,所以LabVIEW程序基本上能用行,也就得到入门容易 ...

  8. hit-testing机制介绍

    1.简介 寻找处理触摸事件的view的过程为hit-testing,找到的能够处理触摸事件的view叫做hit-test view. 2.机制介绍 假设下图为我们的手机屏幕,当我们假设点击了view ...

  9. windows7配置python和django的开发环境

    直接上图,这是我在我的电脑配置windows7python和django开发环境的所有用到的软件 要求不高,只需要这几个软件的版本相一致就行, 需要注意的是软件安装时需要统一是32位或者64位的软件, ...

  10. 关于HTML,css3自适应屏幕,自适应宽度

    设置了在不同分辨率下,显示的css样式: @media screen and (min-width:1080px){ .box{ width: 1080px;}.content{width: 1040 ...