P1979 NOIP2013 提高組 華容道

2021-10-16 05:27:17 字數 828 閱讀 4185

感覺這題實在是妙哉,妙在如何去掉冗餘狀態。

首先我們可以發現除了空位和特殊位其他都是本質相同的,所以容易設出狀態fi,

j,x,

yf_

fi,j,x

,y​表示使特殊位座標為(i,

j)

(i,j)

(i,j

),空位座標為(x,

y)

(x,y)

(x,y

)的最少時間,該dpdp

dp可以使用dfs

dfsdf

s或bf

sbfs

bfs轉移,時間複雜度為o(n

2m2)

o(n^2m^2)

o(n2m2

)。過不了,我們可以想怎麼去掉冗餘狀態。只有當空位在特殊位的上下左右時,特殊位才能移動,而空位是可以隨意移動的,那當空位在特殊位上下左右時,我們隨意把空位移走肯定是不優的。那我們就不把它移走,空位的座標只可能在四個地方,那就是特殊位的上下左右。故狀態變為fi,

j,k,

k∈[0

,3

]f_,k\in[0,3]

fi,j,k

​,k∈

[0,3

],kk

k表示空位所在方向。

初始狀態可以先用bfs

bfsbf

s預處理出。這樣狀態之間的轉移代價並不相等,所以我們不能再使用bfs

bfsbf

s轉移,由於轉移邊較少,使用spf

aspfa

spfa

轉移,可以做到接近o(n

m)

o(nm)

o(nm

)的複雜度。

題解 P1979 華容道 Noip2013

小 b 最近迷上了華容道,可是他總是要花很長的時間才能完成一次。於是,他想到用程式設計來完成華容道 給定一種局面,華容道是否根本就無法完成,如果能完成,最少需要多少時間。小 b 玩的華容道與經典的華容道遊戲略有不同,遊戲規則是這樣的 在乙個 n mn times mn m 棋盤上有 n times ...

NOIp提高組 2013 花匠

果然,直接dp不做特殊條件判定時,資料規模到一定程度時,必定超時了 看了lrc 機房某大佬 的 if dp i 0 1 dp i 1 1 break 依然不知是何居心,猜測可能是滿足m 1不能同時滿足那個條件吧.想不出 接著進一步分析 受到以前有個題求序列連續和的啟發,我們可以這樣設計狀態 令f i...

NOIP2013提高組 花匠

花匠棟棟種了一排花,每株花都有自己的高度。花兒越長越大,也越來越擠。棟棟決定把這排中的一部分花移走,將剩下的留在原地,使得剩下的花能有空間長大,同時,棟棟希望剩下的花排列得比較別緻。具體而言,棟棟的花的高度可以看成一列整數h 1,h 2,h n。設當一部分花被移走後,剩下的花的高度依次為g 1,g ...