傳送門:題目點這裡;
首先理解題目,就是要求給定矩陣中權值和不小於零的最大子矩陣,資料範圍200也還不算棘手,暴力n^4的演算法也可以水到50分。正解要用到單調棧配合二分和字首和,複雜度n^3logn,跑得也還算快。
分析一下,首先用乙個陣列a[ i ][ j ]記錄下第 i 行前 j 個元素之和,然後開始乙個個列舉從左邊界 i 和右邊界 j ,用乙個tot變數記錄 i 到 j 的元素和,再一行行累加,如果遇到元素和小於零的情況就開始二分,找到乙個行號k使得從第k行到該行的元素和大於零,列舉過程中比較得出ans就可以了,下面是**:
#include#include#include
#include
#include
#include
#define ll long long
using
namespace
std;
ll n,m,a[
202][202
],ans;
ll sta[
202],f[202
],top;
void
ready()
}}ll getnum(ll u)
return
ret;
}void
work()
if(sta[top]>tot)sta[++top]=tot,f[top]=k;//單調棧;}}
} printf(
"%lld
",ans);
}int
main()
洛谷 P1565 牛宮
題目 牛宮 思路 咳咳,先放個提交記錄 嗯再來個mjy0724的思路 然後就沒我什麼事了 有這麼幾點需要注意的地方 1 vector一定不能作為引數傳進函式,會t到飛起,親測100 50 2 第一列數要單獨判斷 3 字首和的處理,i,j 的字段和大於0的條件是sum j sum i 1 而非sum ...
洛谷P1565 牛宮
ap 神牛準備給自己蓋一座很華麗的宮殿。於是,他看中了一塊n m 的矩形空地。空地中每個格仔都有自己的海拔高度。ap 想讓他的宮殿的平均海拔在海平面之上 假設 海平面的高度是0,平均數都會算吧?而且,ap 希望他的宮殿盡量大,能夠容納更 多的人來膜拜他。請問ap 的宮殿最後會有多大?輸入格式 第一行...
洛谷 P2805 BZOJ 1565 植物大戰殭屍
plants vs.zombies pvz 是最近十分風靡的一款小遊戲。plants 植物 和zombies 殭屍 是遊戲的主角,其中plants防守,而zombies進攻。該款遊戲包含多種不同的挑戰系列,比如protect your brain bowling等等。其中最為經典的,莫過於玩家通過控...