膜sen爺爺:
題意:給你乙個n*m的矩陣(1<=n,m<=1000)但是其中的正數最多100個其餘的全是0,
讓你求子矩陣最大的邊界和
由於沒有oj判題,自己寫了乙個**就放在這裡了,望大家檢查
**:
#include using namespace std;
const int maxn = 1005;
const int maxv = 105;
const int inf = 0x3f3f3f3f;
int map[maxn][maxn],map1[maxv][maxv];
int h[maxv][maxv],l[maxv][maxv];
int n,m;
int pos1,pos2;
int vh[maxn],vl[maxn];
int main()
}} pos1 = 0;
for(int i = 1;i<=n;i++)}}
} for(int i = 1;i<=pos1;i++)
} int maxx = -inf;
for (int i = 1;i<=pos1;i++)
if(k == 1) else if(i == j)
else }}
}printf("%d\n",maxx);
} return 0;
}
最大子矩陣的總和:
**:
#include using namespace std;
const int maxn = 1005;
const int maxv = 105;
const int inf = 0x3f3f3f3f;
int map[maxn][maxn],map1[maxv][maxv];
int h[maxv],l[maxv];
int per[maxv][maxv];
int pos1,pos2;
int n,m;
int main()
}} pos1 = 0;
for(int i = 1;i<=n;i++)}}
} for(int i = 1;i<=pos1;i++)
} int maxx = -inf;
for(int i = 1;i<=pos1;i++) else
if(sum > maxx)}}
}printf("%d\n",maxx);
} return 0;
}
關於連續子陣列的最大和和最大積
find the contiguous subarray within an array containing at least one number which has the largest sum.for example,given the array 2,1,3,4,1,2,1,5,4 th...
邊界為1的最大子方陣
思路如下,先建立乙個三維輔助陣列,第一第二位存放矩陣的行和列的下標,第三位0時,存放 當前位置向右連續共有幾個1,第三位為1時,存放當前位置向下連續共有幾個1。由於矩陣的最後一列的元素,它的底下為空,所以要先單獨提取出來,為最後一行三維陣列第三個元素向右向左單獨賦值。此後的元素賦值類似最後一列,還是...
求矩陣的最大子矩陣面積
問題引入 求解直方圖中最大的矩形面積 核心思想 讓二維陣列轉換成多層的一維陣列,再根據一維陣列構建直方圖 主函式,讓二維陣列轉換成多層的一維陣列,再根據一維陣列構建直方圖 public intmaxrecsize int map int maxarea 0 int height newint map...