UVA 108 Maximum Sum
2013-11-22 13:12
441 查看
最大子矩阵和,转化为一维最大字串和解决
#include <stdio.h> #include <memory.h> int n; int data[120][120]; int column_sum[120]; int max_sum[120]; void set_column_sum(int r1, int r2) { memset(column_sum,0,sizeof(column_sum)); int i,j; for (i=0;i<n;i++) { for (j=r1;j<=r2;j++) column_sum[i]+=data[j][i]; } } int get_maxcolumn_sum() { int r=column_sum[0]; max_sum[0]=r; int i; for (i=1;i<n;i++) { if (max_sum[i-1]>0) max_sum[i]=max_sum[i-1]+column_sum[i]; else max_sum[i]=column_sum[i]; if (max_sum[i]>r) r=max_sum[i]; } return r; } int main() { int i,j; int ans; int tmp; while (scanf("%d",&n)!=EOF) { for (i=0;i<n;i++) { for (j=0;j<n;j++) scanf("%d",&data[i][j]); } ans=0; for (i=0;i<n;i++) { for (j=i;j<n;j++) { set_column_sum(i,j); tmp=get_maxcolumn_sum(); if (tmp>ans) ans=tmp; } } printf("%d\n",ans); } return 0; }
相关文章推荐
- UVa 108: Maximum Sum
- uva 108 Maximum Sum 最大子矩阵和
- UVA - 108 Maximum Sum(最大子矩阵和)
- UVa 108: Maximum Sum
- uva 108 Maximum Sum
- uva_108 - Maximum Sum
- UVa 108 - Maximum Sum
- 【UVA】108 - Maximum Sum(DP矩阵)
- uva 108 Maximum Sum
- UVa 108 Maximum Sum (经典问题转化)
- uva108 - Maximum Sum(最大和)
- UVa 108 - Maximum Sum
- UVA 108 - Maximum Sum (POJ 1050)
- UVA 108 Maximum Sum(子矩阵最大和)
- Uva 108 Maximum Sum
- UVA - 108 Maximum Sum(子矩阵最大和)
- UVA - 108 Maximum Sum
- uva 108 Maximum Sum
- UVA 108 Maximum Sum
- UVA - 108 Maximum Sum