博客
关于我
Luogu P4240 毒瘤之神的考验
阅读量:305 次
发布时间:2019-03-01

本文共 554 字,大约阅读时间需要 1 分钟。

数论中的φ函数是一个重要的工具,用于计算某个数的欧拉函数值。对于两个数i和j,φ(ij)的计算公式为:

φ(ij) = φ(i)φ(j)gcd(i,j) / φ(gcd(i,j))

通过对这个公式进行变形,我们可以得到:

φ(ij) = [φ(i)φ(j)gcd(i,j)] / φ(gcd(i,j))

这使得我们能够通过预处理φ值和最大公约数来计算φ(ij)。

接下来,我们定义了两个函数g和f:

g(a, b) = ∑ i=1^a φ(ib)

f(T) = ∑ d|T d/φ(d) μ(T/d)

这些函数的预处理可以显著减少计算复杂度,分别为O(n log n)和O(n log n)。

对于给定的n和m,我们需要计算以下表达式来得到最终答案:

∑ T=1^min(n,m) g(⌊n/T⌋, T)g(⌊m/T⌋, T)f(T)

为了优化计算,我们采用分块处理的方法。具体来说,对于每个T,计算⌊n/T⌋和⌊m/T⌋,并使用预处理的g和f值来快速得到结果。

为了保证计算的高效性,我们设定B = T^(1/3),并对查询进行分块处理。对于每个块的范围,计算H函数的值差,避免直接枚举,确保计算复杂度在O(n log n + n B^2)的水平。

通过这种方法,我们能够在合理的时间内处理较大的输入规模。

转载地址:http://bjwo.baihongyu.com/

你可能感兴趣的文章
Python Web自动化测试开发环境搭建(附安装包与虚拟机环境)
查看>>
python win32api键盘_Python win32api.keybd_event模拟键盘输入
查看>>
python Windows显示当前鼠标坐标
查看>>
python Workbook 表格宽度
查看>>
python | flanker,一个神奇的 Python 库!
查看>>
python | flower,一个强大的 Python 库!
查看>>
python | funcy,一个超强的 提供函数式编程工具 Python 库!
查看>>
python | ggplot,一个超强的 Python 库!
查看>>
python | grab,一个强大的 Python 库!
查看>>
python | rich,一个无敌的 Python 库!
查看>>
python | rq,一个无敌的 关于Redis 的Python 库!
查看>>
python | unoconv,一个超厉害的 Python 库!
查看>>
python | urllib3,一个超强的 Python 库!
查看>>
python | webassets,一个超强的 Python 库!
查看>>
python | werkzeug,一个不可思议的 Python 库!
查看>>
python | xlsxwriter,一个实用的 Python 库!
查看>>
python | xlwings,一个非常实用的 Excel 相关的 Python 库!
查看>>
python | 一文看懂Python闭包机制与变量作用域规则
查看>>
python读取含中文的json
查看>>
python | 如何用Python锁避免并发错误?
查看>>