标签:dp
#include<cstdio> #include<cstring> #include<algorithm> using namespace std; const int INF=1<<30; int a[105][105]; int b[105]; int dp[105]; int maxx,ans; int main() { int n; while(scanf("%d",&n)==1) { for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) { scanf("%d",&a[i][j]); } } ans=-INF; for(int i=1;i<=n;i++) { memset(b,0,sizeof(b)); for(int j=i;j<=n;j++) { for(int k=1;k<=n;k++) { b[k]+=a[j][k]; } maxx=-INF; dp[0]=0; for(int k=1;k<=n;k++) { dp[k]=dp[k-1]+b[k]; if(dp[k]<b[k]) { dp[k]=b[k]; } if(maxx<dp[k]) { maxx=dp[k]; } } if(ans<maxx) { ans=maxx; } } } printf("%d\n",ans); } return 0; }
hdu 1081 To The Max(最大连续子序列推广到二维)
标签:dp
原文地址:http://blog.csdn.net/xky1306102chenhong/article/details/45539829