這是一道來自洛谷普及訓練場的題目。
第一眼看到此題,覺得乙個2維dp加乙個2維字首和就ok了,結果72分。。。卡了很久,最後才明白錯誤的原因。
int calc(int x, int y, int ex, int ey) //錯誤原因是顯而易見的,只是我太菜了。。。我們不能只考慮全部繼承和全不繼承, 我們還要考慮部分繼承的情況。72分 忽略了部分繼承的情況
intmain()
for (int i = 1; i <= m; ++i)
if (a[1][i]) dp[1][i][0] = dp[1][i][1] = 1
;
for (int i = 2; i <= n; ++i)
for (int j = 1; j <= m; ++j)
cout
<
}
ac**:
#include #include#include
#include
#include
using
namespace
std;
intread()
int n, m, ans = 0
, b;
int a[2505][2505
];int dp[2505][2505
];int l[2505][2505
];int u[2505][2505
];int r[2505][2505
];int
main()
memset(dp,
0, sizeof(0
));
for (int i = 1; i <= n; ++i)
for (int j = m; j >= 1; --j)
if (!a[i][j])
r[i][j] = r[i][j + 1] + 1
;
else r[i][j] = 0, dp[i][j] = min(dp[i - 1][j + 1], min(r[i][j + 1], u[i - 1][j])) + 1, ans =max(dp[i][j], ans);
cout
<
}
洛谷 P1736 創意吃魚法
題目描述 回到家中的貓貓把三桶魚全部轉移到了她那長方形大池子中,然後開始思考 到底要以何種方法吃魚呢 貓貓就是這麼可愛,吃魚也要想好吃法 她發現,把大池子視為01矩陣 0表示對應位置無魚,1表示對應位置有魚 有助於決定吃魚策略。在代表池子的01矩陣中,有很多的正方形子矩陣,如果某個正方形子矩陣的某條...
洛谷P1736 創意吃魚法
回到家中的貓貓把三桶魚全部轉移到了她那長方形大池子中,然後開始思考 到底要以何種方法吃魚呢 貓貓就是這麼可愛,吃魚也要想好吃法 她發現,把大池子視為01矩陣 0表示對應位置無魚,1表示對應位置有魚 有助於決定吃魚策略。在代表池子的01矩陣中,有很多的正方形子矩陣,如果某個正方形子矩陣的某條對角線上都...
洛谷 P1736 創意吃魚法
回到家中的貓貓把三桶魚全部轉移到了她那長方形大池子中,然後開始思考 到底要以何種方法吃魚呢 貓貓就是這麼可愛,吃魚也要想好吃法 她發現,把大池子視為01矩陣 0表示對應位置無魚,1表示對應位置有魚 有助於決定吃魚策略。在代表池子的01矩陣中,有很多的正方形子矩陣,如果某個正方形子矩陣的某條對角線上都...