Day 12
0
T1 迷宮
Solution
注意到 n 最大隻有5,我們想到用線段樹維護區間[l, r]從a[l][i]到a[r][j]移動的最小路徑長,儲存在線段樹裏。
具體push_up的時候枚舉中點k,得到方程
update的時候直接修改a[i][j]的值,再從修改的點一路push_up就好,這樣就將所有包含修改的點的區間全部更新了一遍。
query時要注意,如果要查詢的區間[L, R]不完全包含在[l, mid]或[mid+1, r]中,還是要將[L,mid]和[mid+1, r]合併一下的。
合併工作和push_up一樣。枚舉中點k轉移。
一開始拿到這道題想到是數據結構,但是沒有什麼思路。
問題還是在我對一些基本數據結構的理解不夠深,換一種不常見使用方式就不熟悉怎麼去做了…
還有,這題分塊可以拿到不錯的分數(80?),考試的時候也沒有去嘗試。