解法一:分治思想
#include
#include
#include
using namespace std;
int n,a[200200];
int fun(int l,int r)
sum=0;
for(int i=mid+1;i<=r;i++)//不斷更新右側陣列中元素和的最大值
return max(max(fun(1,mid),fun(mid+1,r)),maxm1+maxm2);//開始遞迴
}int main()
解法二:(暴力模擬)
#include
#include
#include
using namespace std;
int a[200200];
int n;
int fun()//兩次迴圈暴力計算
sum=0;
}return maxm;
}int main()
解法三:(貪心演算法)
#include
#include
#include
using namespace std;
int a[200200];
int n;
int fun() //貪心演算法(時間複雜度最低)
return maxm;
}int main()
最大的和題解 貪心
給定乙個包含整數的二維矩陣,子矩形是位於整個陣列內的任何大小為1 1或更大的連續子陣列。矩形的總和是該矩形中所有元素的總和。在這個問題中,具有最大和的子矩形被稱為最大子矩形。例如,下列陣列 0 2 7 0 9 2 6 2 4 1 4 1 1 8 0 2 其最大子矩形為 9 2 4 1 1 8 它擁有...
最大連續和(題解)
題目描述 給出乙個長度為n 的序列a1,a2,an,求最大連續和。換句話說,要求找到1 i j n,使得ai ai 1 aj 盡量大。輸入格式 第一行輸入n 1 n 50000 接下來1 行輸入序列的n 個元素,第i 1 行為ai ai 10000 輸出格式 輸出乙個數表示最大連續和。樣例輸入輸出 ...
模版 最大子樹和 題解
樹上dp 給出一棵樹,上面有權值,求這個數的子樹的最大權值和。模板題,就是樹上dp。可以想到只要這個樹的子樹的權值大於0就可以選擇,即加上這個權值。所以這個dp的轉移方程是 f i sum nf 0 其中 n 表示這個子樹大小,a i 表示這個子樹的子節點。include using i64 lon...