首页 > 其他分享 >【APIO2015】Jakarta Skyscrapers

【APIO2015】Jakarta Skyscrapers

时间:2023-03-07 16:11:06浏览次数:50  
标签:状态 Skyscrapers Jakarta doge sqrt APIO2015 根号 暴力

很容易的想到根号分治,我们先考虑暴力做法。

用dp[i][j]表示从开始状态到第i个点有一个跳跃能力为j的doge的最少跳跃次数,暴力也是O(n^2)的。我们考虑稍微优化优化。

考虑根号分治,如果\(j\le \sqrt(n)\) 则最多有\(O(n\sqrt(n))\)个状态。否则每个j最多能到达\(\sqrt(n)\)个状态,最多是\(O(m\sqrt(n))\)个状态。所以状态数是\(O((n+m)\sqrt(n))\)级别。直接暴力01bfs就能过。

需要优化一点就是如果有重复的状态不能重复遍历,并且每次加入一个位置初始的doge只能加入一次,否则就与我们分析的状态数量不相符了。vis的话写一下哈希就行。

但是根号在n<=30000的时候竟然还被卡常了?哈希还过不了,写bitset才能过。

Submission:https://uoj.ac/submission/610079

标签:状态,Skyscrapers,Jakarta,doge,sqrt,APIO2015,根号,暴力
From: https://www.cnblogs.com/IceYukino/p/17188432.html

相关文章