DP五十題 P1736 創意吃魚法

2022-04-08 05:17:14 字數 502 閱讀 3606

const int n=2510;

int f[n][n];//記錄以i,j為右下角(或左下角)能吸到的最多的魚

int l[n][n];//記錄最多能向左邊擴充套件多少個0

int up[n][n];//記錄最多能向上邊擴充套件多少個0

int r[n][n];//記錄最多能向右邊擴充套件多少個0

int a[n][n];

int n,m,ans=int_min;

int main()

rep(i,1,n)

else if(a[i][j]==1)

ans=max(ans,f[i][j]);

} }mem(f,0),mem(up,0);

rep(i,1,n)

else if(a[i][j]==1)

ans=max(ans,f[i][j]);

} }printf("%d",ans);

return 0;

}

P1736 創意吃魚法 DP

題目大意 題解dplr 當前點左邊 副對角線時為右邊 有多少個連續的0 dpup 當前點上邊有多少個連續的0 dp 當前點左上有多少個連續的符合要求的1 主對角線時 dp i j min dp i 1 j 1 min dplr i j 1 dpup i 1 j 1 如原陣列 dplr dpup dp...

P1736 創意吃魚法

題意 有乙個n m的01矩陣,求最長的一條由1構成的斜線的長度,這條斜線所在矩陣的其它位置都必須是0 當前的狀態時右下角那個1,x表示這個位置向左最多可以延申x個0,y表示這個位置向上最多可以延申y個0。那麼就清楚了,這個位置的狀態由左上方的那個1以及x和y轉移,是它們中最小的那個值 1 dp i ...

P1736 創意吃魚法

思路很明確,但是也有兩個坑 1.對角線包括左對角線和右對角線 2.每個狀態由三個值來取最小值,如圖。一開始沒有考慮綠色,導致類似這樣的資料 4 4 1 0 0 1 0 1 0 0 0 0 1 0 1 0 0 1 最後dp 4 4 的值為1,而正確答案是為3。也就是說,它可以繼承上乙個狀態的一部分 i...