hr神犇在成功攻略zx後,花心的他舉辦了一屆選(yu)美(yue)大賽。
由於hr神犇有重度不規則形體恐懼症,所以他要求選美的女孩紙要站成乙個正方形。因為hr神犇的眼光是非常之高的,所以他要求選出來的女孩美貌值總和最大,由於hr神犇的精力非常多,所以選出來的女孩數量沒有限制。當然,一些女孩紙比較醜,美貌值可能為負數。而且,hr神犇的重度不規則形體恐懼症使他要求選出來的女孩紙形成乙個矩形(不是正方形)(實心的)。
hr神犇決定,只要你成功幫他找出這個矩形,他就給你10000000000 mod 10元。
第一行乙個整數n,表示正方形的邊長。
接下來n行,每行n個整數,表示每個女孩的美貌值。
輸出只有乙個整數,表示最大的美貌值總和。
4 0 -2 -7 0
9 2 -6 2
-4 1 -4 1
-1 8 0 -2
對於30%的資料,1<=n<=10,美貌值<=100
對於50%的資料,1<=n<=50,美貌值<=104
對於100%的資料,1<=n<=200,美貌值不會超過int64的儲存範圍
思路就是最大子矩陣和
這篇部落格講的很好大家可以看看最大子矩陣和
簡述一下
就是先處理處從1到第n行(n=2,3,4…)的前n行的和
求第i行到第j的和時用到了數列的性質
比如 a1=-2,a2=2,a3=1,a4=8,
sn代表前n項的和
s1=a1=-2,
s2=a1+a2=0,
s3=a1+a2+a3=1,
s4=a1+a2+a3+a4=9;
所以 第2項到第4項的和為
s4-s1=a1+a2+a3+a4-a1=a2+a3+a4=2+1+8=9-(-2)=11;
所以第i行到第j行的和為 sj-s(i-1),(i,j均為下標)
然後在做最大子段和,代表了第i行到第j行中,第k列到第l列的和
也就是以 (i,j)和(k,l)為頂點的子矩陣
#include
#include
#define ll long long
#define maxn 210
using
namespace
std;
ll a[maxn][maxn];
ll tot,ans;
int n;
inline
void read(ll&x)
while(c>='0'&&c<='9') x=10*x+c-48,c=getchar();
x=x*f;
}int main()
ans=-1;
for(int i=0;ifor(int j=i+1;j<=n;j++) }}
printf("%lld\n",ans);
return
0;}
3736 HR 萬花叢中2
時間限制 1 s 空間限制 128000 kb 題目等級 gold 題解hr神犇在成功攻略zx後,花心的他舉辦了一屆選 yu 美 yue 大賽。由於hr神犇有重度不規則形體恐懼症,所以他要求選美的女孩紙要站成乙個正方形。因為hr神犇的眼光是非常之高的,所以他要求選出來的女孩美貌值總和最大,由於hr神...
MySQL sql萬花油優化
原文 檢視優化器狀態 show variables like optimizer trace 會話級別臨時開啟 set session optimizer trace enabled on end markers in json on 設定優化器追蹤的記憶體大小 set optimizer trac...
萬能還是萬惡的花括號?(PHP)
php手冊 語言參考 變數中指出,php 中的變數用乙個美元符號後面跟變數名來表示。變數名是區分大小寫的。變數名與 php 中其它的標籤一樣遵循相同的規則。乙個有效的變數名由字母或者下劃線開頭,後面跟上任意數量的字母,數字,或者下劃線。按照正常的正規表示式,它將被表述為 a za z x7f xff...