****灰常機智****
dp。說一說思路。
先考慮左上到右下的對角線:f[i][j]表示以(i,j)這一點作為右下角的合法正方形的最大長度。如果當前位置的數字為1,那麼考慮轉移:
那麼問題來了,怎麼快速求最長連續0的長度呢,這個預處理好就可以了。
為了方便,我們預處理的時候,x[i][j]表示,(i,j)左邊最長連續0的長度(包含(i,j)),y[i][j]同理表示上面。如果a[i][j]==1,直接把x[i][j]和y[i][j]設為0,否則就x[i][j]=x[i][j-1]+1,y[i][j]=y[i-1][j]+1。這樣的話dp轉移方程應該是f[i][j]=min(f[i-1][j-1]+1, x[i][j-1]+1, y[i-1][j]+1)。
如果是右上到左下的對角線,就只要把每一行的數左右反轉一下,再做同樣的dp即可。
洛谷 P1736 創意吃魚法
題目描述 回到家中的貓貓把三桶魚全部轉移到了她那長方形大池子中,然後開始思考 到底要以何種方法吃魚呢 貓貓就是這麼可愛,吃魚也要想好吃法 她發現,把大池子視為01矩陣 0表示對應位置無魚,1表示對應位置有魚 有助於決定吃魚策略。在代表池子的01矩陣中,有很多的正方形子矩陣,如果某個正方形子矩陣的某條...
洛谷P1736 創意吃魚法
回到家中的貓貓把三桶魚全部轉移到了她那長方形大池子中,然後開始思考 到底要以何種方法吃魚呢 貓貓就是這麼可愛,吃魚也要想好吃法 她發現,把大池子視為01矩陣 0表示對應位置無魚,1表示對應位置有魚 有助於決定吃魚策略。在代表池子的01矩陣中,有很多的正方形子矩陣,如果某個正方形子矩陣的某條對角線上都...
洛谷 P1736 創意吃魚法
回到家中的貓貓把三桶魚全部轉移到了她那長方形大池子中,然後開始思考 到底要以何種方法吃魚呢 貓貓就是這麼可愛,吃魚也要想好吃法 她發現,把大池子視為01矩陣 0表示對應位置無魚,1表示對應位置有魚 有助於決定吃魚策略。在代表池子的01矩陣中,有很多的正方形子矩陣,如果某個正方形子矩陣的某條對角線上都...