zoj 1074 To the MAX

951 단어 C 언어
만나다
남 의 생각 을 참고 해서 야 해결 했다.보다.http://blog.csdn.net/acm_davidcn/article/details/5834454
최대 연속 서브 시퀀스 와 알고리즘 을 사 용 했 습 니 다. 자신 도 이 알고리즘 을 알 고 있 지만 활 학 활용 을 할 수 없습니다.
/* zoj 1074  To the Max */
#include 
#include 
#include 

#define MAX 105

int main(void)
{
  int i,j,k;
  int a[MAX][MAX];
  int matrixSize,sum,max = INT_MIN;

  memset(a,0,sizeof(a));
  scanf("%d", &matrixSize);
  for(i = 1; i <= matrixSize; i++)
    for(j = 1; j <= matrixSize; j++)
      {
	scanf("%d", &a[i][j]);
	a[i][j] += a[i-1][j];
      }
  for(i = 1; i <= matrixSize; i++)
    for(j = i; j <= matrixSize; j++)
      {
	sum = 0;
	for(k = 1; k <= matrixSize; k++)
	  {
	    sum += a[j][k]-a[i-1][k];
	    if(sum < 0)
	      sum = 0;
	    if(sum > max)
	      max = sum;
	  }
      }
  printf("%d
",max); return 0; }
 

좋은 웹페이지 즐겨찾기