zoj1074

来源:互联网 发布:苹果电脑 知乎 编辑:程序博客网 时间:2024/06/05 23:53

经典DP

#include<stdio.h>#include<stdlib.h>#include<string.h>#include<math.h>int DP(int a[], int n){  int i, f[101];  int max = -200000000;  for(i=2,f[1]=a[1]; i<=n; i++)  {    if(f[i-1]>0)      f[i] = f[i-1] + a[i];    else      f[i] = a[i];    if(f[i]>max)      max = f[i];  }  return max;}int main(){  int n, i, he, j;  int a[105][105], k;  int sum[105], max;  scanf("%d",&n);  for(i=1; i<=n; i++)    for(j=1; j<=n; j++)      scanf("%d",&a[i][j]);  max = -200000000;  for(i=1; i<=n; i++)  {    memset(sum, 0, sizeof(sum));    for(j=i; j<=n; j++)    {      for(k=1; k<=n; k++)        sum[k]+=a[j][k];      he = DP(sum, n);      if(he>max) max=he;    }  }  printf("%d\n",max);  return 0;}


0 0
原创粉丝点击