2022.9.30 闲话
Preface
不要管这个叫 Preface 的 H1 .
呃……
(鼠标)
我的 B 站 20 粉丝了!
\Apjifengc/
……
我在其他网站的粉丝远远是达不到这么多的……
……
……(话题是)我的黑历史!
(背的不对见谅,有部分省略)
原文 .
一个普及难度的题,Solution 可以写得多冗长?
给一个序列 \(\{a_n\}\),求
\[6\left(\sum_{i=1}^n\sum_{j=i+1}^n\sum_{k=j+1}^n a_ia_ja_k\right) \bmod (10^9+7) \]\(3\le n\le 10^6\) .
异或搁哪呐?
首先推一波柿子
记 \(\displaystyle S_{l,r}=\sum_{i=l}^ra_i\)
则原式就等于
先处理出
然后 \(\Theta(n)\) 暴力算第一个 \(\displaystyle\sum\),第二个 \(\displaystyle\sum\) 每次求完后将 \(R\gets R-a_{i+1}S_{i+2,n}\) 即可 .
时空复杂度 \(\Theta(n)\) .
伪代码:
C++ 代码:
using namespace std;
const int N=1e6,MOD=1e9+7;
typedef long long ll;
int n,a[N];
ll S[N],ans,R;
inline __attribute__((always_inline)) ll sum(int l,int r){return ((S[r]-S[l-1])%MOD+MOD)%MOD;}
// 这个 inline __attribute__((always_inline)) 是加速用的,可以忽略 qwq
int main()
{
scanf("%d",&n);
for (int i=1;i<=n;i++){scanf("%d",a+i); S[i]=(S[i-1]+a[i])%MOD;}
for (int i=2;i<=n;i++) R=(R+a[i]*sum(i+1,n)%MOD)%MOD;
for (int i=1;i<=n;i++){ans=(ans+a[i]*R%MOD)%MOD; R=((R-a[i+1]*sum(i+2,n))%MOD+MOD)%MOD;}
printf("%lld\n",6*ans%MOD);
return 0;
}
发现以前写的东西还挺好玩的 hszxoj 规则类怪谈,SCP-1919810,? .
闲话太水也不好,放个题吧,有人说是洛谷上那个叫约数个数和的题弱化版,额好像关系不是很大啊 /youl
好像当时出的时候是根据 3B1B 的感觉出的 .
以下是正文 desu!
正文
题目描述
设
其中 \(p_i\) 为互不相同的素数,\(\alpha_i\) 是大于 \(0\) 的整数 .
则令
给定 \(n,k\),求:
答案对 \(10^9+7\) 取模 .
- Subtask 1 (10 pts):\(1\le n\le 10^4\) .
- Subtask 2 (30 pts):\(1\le n\le 10^5\) .
- Subtask 3 (20 pts):\(1\le n\le 10^6\),\(\mu^2(n)=1\).
- Subtask 4 (40 pts): \(1\le n \le 10^6\) .
对于所有数据 \(1\le T\le 10\),\(1\le n\le 10^6\),\(k\in[0,2]\) .
题解
Subtask 1 & Subtask 2
乱搞 / 暴力
Subtask 3
令 \(g_p(x)=x^p\),那么推一下这个 \(f(n,k)\) 是啥
其中 \(\sigma_k(n)\) 是 \(n\) 的所有约数的 \(k\) 次方和 .
所以问题就是要求
暴力求就可过这一档了 .
Subtask 4
\(\sigma_k\) 是积性函数,可以线性筛,然后就可以得到满分了 .
或者写 \(O(n\log n)\) 调和级数算法也行 .
Bonus
显然这么经典的问题是有更优做法的 .
众所周知的,有 (\(*\) 是狄利克雷卷积)
于是,
用杜教筛就可以做出 .
\(\mu\) 函数和 \(\mathrm{Id}_k\) 的前缀和非常好做,前者杜教筛一下,后者用公式即可 .
时间复杂度大概就是 \(\Theta(n^{3/4})\),不知道这里用 \(\Theta\) 对不对 .
更优做法我就不会了 .
要是想跑的快快的可以分段打表 .
\(X\) 是为仅取非负整数值的随机变量,定义其 PGF 为
\[G_X(z)=\mathbb{E}\left(z^X\right)=\sum_{i=0}^{\infty}\operatorname{Pr}(X=i)z^i \]则有:
- \(G_X(1) = 1\) .
- \(\mathrm E(X^{\underline{k}}) = G_X^{(k)}(1)\) .
- \(\operatorname{Var}(X) = G^{''}_X(1)+G^{'}_{X}(1)-G^{'}_X(1)^2\) .
- \(G_X(z)G_Y(z) = G_{X+Y}(z)\) .
以下是博客签名,正文无关
本文来自博客园,作者:Jijidawang,转载请注明原文链接:https://www.cnblogs.com/CDOI-24374/p/16745914.html
版权声明:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议(CC BY-NC-SA 4.0)进行许可。看完如果觉得有用请点个赞吧 QwQ