nyoj--44- - 하위 문자열과 (동적 기획)
시간 제한:
5000ms | 메모리 제한:
65535 KB
난이도:
3
묘사
정형 수열 {a1,a2...,an}을 정하고 연속적인 비공식 서브열 {ax,ax+1,...,ay}을 찾아 이 서브 서열의 합을 최대화시킨다. 그 중에서 1<=x<=y<=n.
입력
첫 번째 행은 테스트 데이터의 그룹 수를 나타내는 정수 N(N<=10)입니다.
각 그룹의 테스트 데이터의 첫 번째 줄은 하나의 정수 n으로 서열에 모두 n개의 정수가 있음을 나타낸다. 그 다음에 한 줄에 n개의 정수 I(-100=출력
각 그룹의 테스트 데이터 출력과 최대 연속 서브열의 합.
샘플 입력
1
5
1 2 -1 3 -2
샘플 출력
5
프롬프트
입력 데이터가 많기 때문에scanf를 사용하여 입력하는 것을 추천합니다
출처
고전적 문제
이런 문제는 최근에 늘 만나는데, 바로 무뇌가이고, 그 다음에 비교와 판단을 하는 것이다.
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
int a[1000100];
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
memset(a,0,sizeof(a));
int n;
scanf("%d",&n);
for(int i=0;i<n;i++)
scanf("%d",&a[i]);
int sum,max;
sum=max=a[0];
for(int i=1;i<n;i++)
{
sum+=a[i];
if(sum<0)
sum=0;
if(sum>max)
max=sum;
}
printf("%d
",max);
}
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.