bzoj 2005 NOI 2010 能量采集
2024-09-04 05:56:10
我们发现对于一个点(x,y),与(0,0)连线上的点数是gcd(x,y)-1
那么这个点的答案就是2*gcd(x,y)-1,那么最后的答案就是所有点
的gcd值*2-n*m,那么问题转化成了求每个点的gcd值的Σ
也即:Σi<=n Σj<=m gcd(i,j)
那么首先我们知道Σphi(d) d|n=n,所以我们可以将这个式子转化成
Σi<=n Σj<=m Σ d|gcd(i,j) phi(d)
那么对于矩阵n*m来说,我们将phi(d)累加了floor(n/d)*floor(m/d)次
所以对于所有的d,答案就是Σ d<=min(n,m) floor(n/d)*floor(m/d)*phi(d)
我们可以线性筛出欧拉函数表,然后线性的求解。
/**************************************************************
Problem:
User: BLADEVIL
Language: Pascal
Result: Accepted
Time: ms
Memory: kb
****************************************************************/
//By BLADEVIL
var
i, j :longint;
prime, mindiv, phi :array[..] of int64;
ans :int64;
n, m :int64;
procedure swap(var a,b:int64);
var
c :int64;
begin
c:=a; a:=b; b:=c;
end;
begin
read(n,m);
if n>m then swap(n,m);
phi[]:=;
for i:= to n do
begin
if mindiv[i]= then
begin
inc(prime[]);
prime[prime[]]:=i;
mindiv[i]:=i;
phi[i]:=i-;
end;
for j:= to prime[] do
begin
if i*prime[j]>m then break;
mindiv[i*prime[j]]:=prime[j];
if i mod prime[j]= then
begin
phi[i*prime[j]]:=phi[i]*prime[j];
break;
end else
phi[i*prime[j]]:=phi[i]*(prime[j]-);
end;
end;
for i:= to n do
ans:=ans+(n div i)*(m div i)*phi[i];
ans:=ans*-n*m;
writeln(ans);
end.
最新文章
- HTML的两三事
- 配置nodejs环境
- Robot Framework 的安装和配置(转载)
- 自定义圆环progressbar
- TYVJ P1051 选课 Label:多叉转二叉&;&;树形dp(虐心♥)
- JavaScript如何判断参数为浮点型
- bzoj4557【JLOI2016】侦查守卫
- python进阶------进程线程(三)
- php无法连接mysql问题解决方法总结
- qt 免注册下载
- elastic-job详解(四):失效转移
- 分析“HTTP500内部服务器错误”解决方法
- typescript类(学习笔记非干货)
- mysqldump备份时保持数据一致性
- 关于如何在Python中使用静态、类或抽象方法的权威指南
- ASP.NET 构建高性能网站 第6篇
- VC dimension(Vapnik-Chervonenkis dimension)
- PostgreSQL的.NET驱动程序Npgsql中参数对象的一个Bug
- 使 WPF 支持触摸板的横向滚动
- C# LINQ学习笔记
热门文章
- 【HNOI2008】玩具装箱TOY &; 斜率优化学习笔记
- iOS URL加解密
- 每天一个Linux命令(14):dpkg命令
- HDU 4735 Little Wish~ lyrical step~(DLX搜索)(2013 ACM/ICPC Asia Regional Chengdu Online)
- c# 自动关机代码
- 一种保持顺序的Properties
- Java中WeakHashMap实现原理深究
- AndroidStudio3.0 注解报错Annotation processors must be explicitly declared now. The following dependencies on the compile classpath are found to contain annotation processor.
- Github &; DMCA Takedown Policy
- Hibernate关联映射之_一对多