题目:http://poj.org/problem?id=1050
自己用了n^4的像暴搜一样的方法,感到有点奇怪——真的是这样?
#include<iostream> #include<cstdio> using namespace std; int n,a[105][105],d[105][105],mx,ss; int main() { scanf("%d",&n); for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) scanf("%d",&a[i][j]); for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) { int sum[105]={0}; for(int h=0;i-h;h++) { ss=0; for(int l=0;j-l;l++) { sum[l]+=a[i-h][j-l]; ss+=sum[l]; d[i][j]=max(d[i][j],ss); } } mx=max(mx,d[i][j]); } printf("%d",mx); return 0; }