bzoj 3451
2017-03-11 11:16
162 查看
题目:
求随机点分治的期望复杂度。
题解:
思路一开始就没对,应该往贡献的方向去思考的。
考虑一个点对(u,v),若u会对v产生影响,当且仅当u->v的路径上不存在被选中的点。而一条路径上所有的点被选中的概率是均等的,u被首选的概率为1/(dis(u,v)+1)。那么对v的期望贡献就是那么多。
那问题成功转化成
∑i,j<=n1/(dis(u,v)+1)
设D(i)表示为距离为i的点对个数。
那么以上式子可变为:
2∗∑i<=nD(i)/(i+1)
到了这步,D可以用点分治+FFT实现。
在点分治的过程中:
设g(i)为重心前面子树到重心中距离为i的点数,f(i)为当前子树到重心中距离为i的点数。
D(i)=∑j<=ng(j)∗f(i−j)
这里就用FFT加速。
在点分治的过程中,用最大树高为限制就可以保证复杂度,因为点分治的过程中,对应树高是不会超过对应子树大小的,这样就可以保证每层分治的清空总数量就是n的级别。所以,这题的复杂度为O(nlog2n)。
感觉自己的FFT还不慢,但是为什么自己的NTT那么慢呢……
求随机点分治的期望复杂度。
题解:
思路一开始就没对,应该往贡献的方向去思考的。
考虑一个点对(u,v),若u会对v产生影响,当且仅当u->v的路径上不存在被选中的点。而一条路径上所有的点被选中的概率是均等的,u被首选的概率为1/(dis(u,v)+1)。那么对v的期望贡献就是那么多。
那问题成功转化成
∑i,j<=n1/(dis(u,v)+1)
设D(i)表示为距离为i的点对个数。
那么以上式子可变为:
2∗∑i<=nD(i)/(i+1)
到了这步,D可以用点分治+FFT实现。
在点分治的过程中:
设g(i)为重心前面子树到重心中距离为i的点数,f(i)为当前子树到重心中距离为i的点数。
D(i)=∑j<=ng(j)∗f(i−j)
这里就用FFT加速。
在点分治的过程中,用最大树高为限制就可以保证复杂度,因为点分治的过程中,对应树高是不会超过对应子树大小的,这样就可以保证每层分治的清空总数量就是n的级别。所以,这题的复杂度为O(nlog2n)。
感觉自己的FFT还不慢,但是为什么自己的NTT那么慢呢……
相关文章推荐
- [bzoj3451]Tyvj1953 Normal
- 【bzoj3451】【Tyvj1953】Normal 题解
- bzoj 3451: Tyvj1953 Normal 点分治+fft
- [BZOJ3451][Tyvj1953]Normal
- 【BZOJ 3451】Tyvj1953 Normal 思维题+期望概率+FFT+点分治
- bzoj 3451: Tyvj1953 Normal [fft 点分治 期望]
- bzoj 3451: Tyvj1953 Normal
- bzoj 3451 Normal
- bzoj3451 Tyvj1953 Normal(期望概率+点分治+FFT)
- 【BZOJ3451】Tyvj1953 Normal 点分治+FFT+期望
- BZOJ 1295 SCOI2009 最长距离 SPFA+暴力
- 【BZOJ4007】【JLOI2015】战争调度 war 搜索
- 【BZOJ】2956: 模积和
- BZOJ_P2118 墨墨的等式(最短路)
- [bzoj1064][NOI2008]假面舞会
- [BZOJ1572] WorkScheduling
- BZOJ 1770: [Usaco2009 Nov]lights 燈 [高斯消元XOR 搜索]
- 【BZOJ 3218】 3218: a + b Problem(最小割+可持久化线段树)
- BZOJ1078 [SCOI2008]斜堆
- bzoj3193 [JLOI2013]地形生成(dp+组合数学)