nyoj17 단조로운 증가 최장자 시퀀스(DP)

제목 17제목 정보실행 결과본제 랭킹토론 영역

단조 증가 최장자 서열


시간 제한:
3000ms | 메모리 제한:
65535 KB
난이도:
4
묘사
문자열의 가장 긴 증자 서열의 길이를 구하다
예를 들어 dabdbf의 가장 긴 증자 서열은 abdf이고 길이는 4이다
입력
첫 번째 줄 <20개의 정수 0다음 n 행에는 각 행에 문자열이 있으며, 문자열의 길이는 10000을 초과하지 않습니다.
출력
출력 문자열의 최대 시퀀스 길이
샘플 입력
3
aaa
ababc
abklmncdefg

샘플 출력
1
3
7

출처
고전적 제목
업로드자
iphxer
아주 간단한 DP, 뒤에서 앞으로 천천히 밀어주세요.이해도 잘 되고.
몇 개의 고전적인 DP를 기억하고 있는데, 이후의 문제는 모두 이런 간단한 DP에서 추론한 것이다.
 
#include <stdio.h>
#include <string.h>
#include <algorithm>
using namespace std;
int main()
{
	char a[10001];
	int t,len,i,j,dp[10001];
	scanf("%d",&t);
	getchar();
	while(t--)
	{
		gets(a);
		len=strlen(a);
		for(i=0;i<len;i++)//        1
			dp[i]=1;
		for(i=len-2;i>=0;i--)
		{
			for(j=i+1;j<len;j++)
			{
				if(a[i]<a[j]&&dp[i]<dp[j]+1)//    
					dp[i]=dp[j]+1;
			}
		}
		sort(dp,dp+len);
		printf("%d
",dp[len-1]); } return 0; }

좋은 웹페이지 즐겨찾기