摘要:
貌似博客搬家出了点问题, 以前我打的公式都没了。。。 所以要看我以前的blog, 还是移步这里吧 stone41123 阅读全文
摘要:
"传送门" 点分治这个算法一开始学的时候真的觉得这就是玄学,因为按道理来说,这样递归应该是$n^2logn$的呀,为什么就是$nlog^2n$呢?然后我就想到了树链剖分这个神奇的算法,想到了轻重链,忽然就明白了,因为点分治可以每次找重心,保证了递归层数不超过$logn$层,感觉和树剖挺像的。 关于这 阅读全文
摘要:
"传送门" 状压dp $O(2^n)$预处理出来一行的合法状态,然后构造dp转移方程: $f_{i,j,k}表示第i行,此行状态为j,填了k个king时的方案数$ 则转移方程为:$$f_{i,j,k}=\sum f_{i 1,s,k cnt(j)}\big(j,s\in 合法状态集合\big)$$好 阅读全文
摘要:
"传送门" 狄利克雷卷积定义:$$(f g)(n)=\sum_{d|n}f(d) g({\frac n d})$$狄利克雷卷积满足交换律:$$f g=g f$$结合律:$$(f g) h=f (g h)$$还有这么几个性质:$$f \varepsilon=f$$ $$f 1=\sum_{d|n}f( 阅读全文
摘要:
"传送门" 十分裸的一个树链剖分,这也是我第一次过树剖题,好激动! 关于这个算法我不多说,自己百度。 代码: cpp / Problem: 1036 User: stone41123 Language: C++ Result: Accepted Time:2484 ms Memory:5676 kb 阅读全文
摘要:
"传送门" (明明这么一个水题,我居然被坑了这么久) 数位dp。 首先前缀和,答案就是solve(b) solve(a 1),然后预处理dp,每次统计答案。 可以看 "这篇blog" 代码: cpp / Problem: 1026 User: stone41123 Language: C++ Res 阅读全文
摘要:
"传送门" 首先,很简单的dp方程: $$f_i=max(s_i s_j)(j\in [i m,i])$$然后发现$s_i$与$j$无关,可以提出来: $$f_i=s_i min(s_j)(j\in [i m,i])$$发现这个方程可以用数据结构优化,比如线段树,树状数组等等,我这里推荐用st表。 阅读全文