前置知识: 莫比乌斯反演,线性筛,狄利克雷卷积,整除分块。 简要题意: 其中, 首先,你需要知道这道题目的 显然, 这题的瓶颈在于,我们 并不需要一个个求出 想想:我们之前求 事实告诉人们,题目从来都是人做出来的。 我们考虑几个简单的卷积: 好,根据这些,我们开始了伟大的探索。 假设我们要求一个 积性函数 根据 莫比乌斯反演 的性质可得: 假设 现在我们要求的是 显然,因为 此时可以得到: 那么显然: 此时你会说了,好,这个式子怎么求呢? 这个式子确实难求,但关键是, 好算?联系积性函数的性质,我们想到了: 先不管怎么定 显然你会发现,这里有递归部分。 递归?这东西,显然会把很多东西重复计算。 因此我们需要 记忆化。 到这里,杜教筛 的样子渐成,我们已经得到了其中的 下面的难点在于确定 入手题目。 好了,现在的问题在于,这东西的时间复杂度如何? 你发现无法通过,因为,杜教筛必须要初始化一部分数据。 假设我们将 你会发现,只要 显然, 所以, 时间复杂度: 实际得分: 博主的代码太丑,不想拿出来了。以后会重构代码发出来的。
T 组询问,求:
i=1∑nμi
i=1∑nϕi
T≤10,
n<231.
O(Tnn) 算法,
O(Tn) 算法,
O(T+n) 算法。
O(Tnn) 是暴力,
O(Tn) 是一个个筛,
O(T+n) 是预处理 线性筛,一个都无法通过。
μ 和
ϕ,可以不拘泥于此。
∑i=1n⌊in⌋ 的时候,之前手玩 莫比乌斯反演 的时候,甚至有一次玩到
6 个
∑ 还是一一解决了。走过这么多困难,切掉了这么多紫题,这一题怎么就不行了呢?
μ∗I=ϵ,ϕ∗I=Id,μ∗Id=ϕ
f,可以先不直接求,搞出另一个
g,首先考虑怎么求出
f∗g 的前缀和,那样就可以求出
∑f.
i=1∑n(f∗g)(i)
=i=1∑nd∣i∑f(d)×g(di)
=d=1∑ng(d)×i=1∑⌊dn⌋f(i)
f 的前缀和为
S,则:
=d=1∑ng(d)S(⌊dn⌋)
S(n).
g(1)S(n)=d=1∑ng(d)S(⌊dn⌋)−d=2∑ng(d)S(⌊dn⌋)
g(1)S(n) 是
d=1 的答案,考虑前缀和相减即可。
g(1)S(n)=d=1∑n(f∗g)(d)−d=2∑ng(d)S(⌊dn⌋)
S(n)=g(1)∑d=1n(f∗g)(d)−∑d=2ng(d)S(⌊dn⌋)
g 函数是我们自己定的,我们可以定一个
g 使得
g 和
f∗g 的前缀和都非常好算。
I 和
ϵ 都是积性函数,前缀和也非常的简单。后面一堆我们可以整除分块。
g,伪代码大概长这样:inline ll sieve(ll n) { ll ans=calc(n); //calc(i) 负责计算 (f*g)(i) for(ll i=2,r;i<=n;i=r+1) { r=(n/(n/i)); ans-=(sum(r) - sum(i-1)) * sieve(n/i); //sum(i) 计算 g 的前缀和 } return ans; }
60%.
g.
f=ϕ,令
g=I,则
f∗g=Id,此时可以解决。
f=μ,令
g=I,则
f∗g=ϵ,此时也可以解决。
n≤k 的情况的答案都初始化一遍。那么,经过分析(具体证明) 可得,这样的时间复杂度是:
O(k+kn)
O(k) 不出问题,
k 越大越好。
k 和
kn 成反比,相等时和最小。(反比例函数知识)
k=n32 时,时间复杂度达到
O(n32),是比较优的。
O(Tn32).
100pts.
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算
官方软件产品操作指南 (170)