UOJ111 APIO2015 雅加达的摩天楼 最短路根号分治bitset
Posted itst
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UOJ111 APIO2015 雅加达的摩天楼 最短路根号分治bitset相关的知识,希望对你有一定的参考价值。
70+Hack数据真是壮观~
不难考虑到一个暴力的做法:设\(f_i,j\)表示在第\(i\)个点、从第\(j\)个doge跳过来的最短距离,因为边权为\(1\)所以就是个BFS,复杂度\(O(NM)\)。
注意到可以优化一些状态:设\(f_i,j\)表示在第\(i\)个点、当前的doge的步长为\(j\)的方案数,然后再跑BFS。
看似这样还是\(O(N^2)\)的,但是实际复杂度变为了\(O(N\sqrtN)\),复杂度分析考虑根号分治:当步长\(> \sqrtN\)时显然每一只doge最多只有\(\sqrtN\)个有效状态,所以状态数是\(M\sqrtN\)的;而步长\(< \sqrtN\)时只有\(\sqrtN\)种步长,所以状态数是\(N\sqrtN\)的。
然后状态可能装不下,bitset即可。
以上是关于UOJ111 APIO2015 雅加达的摩天楼 最短路根号分治bitset的主要内容,如果未能解决你的问题,请参考以下文章