POJ-1088 스키(기억화 검색, dp)
마이클이 스키를 좋아한다는 것은 이상하지 않다. 왜냐하면 스키는 확실히 자극적이기 때문이다.그러나 속도를 얻기 위해서는 미끄러운 구역이 아래로 기울어야 하며, 언덕 밑으로 미끄러지면 다시 언덕을 올라가거나 승강기가 너를 태우기를 기다려야 한다.마이클은 한 구역에서 가장 긴 언덕을 싣는 것을 알고 싶어 한다.영역은 2차원 그룹으로 표시됩니다.배열의 각 숫자는 점의 높이를 나타냅니다.다음 예는 하나, 둘, 셋, 넷, 다섯.
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9
한 사람이 어떤 점에서 상하좌우로 미끄러져 네 점 중 하나와 인접할 수 있으며, 높이가 줄어들 때만 된다.위의 예에서 활주할 수 있는 미끄럼틀은 24-17-16-1이다.그럼요. 25-24-23-... -3-2-1이 더 길어요.사실 이것이 가장 긴 것이다.Input
입력한 첫 번째 행은 영역의 행 수 R과 열 수 C(1 <= R, C <= 100)를 나타냅니다.다음은 R줄입니다. 줄마다 C개의 정수가 있는데 높이 h, 0<=h<=10000을 대표합니다.Output
가장 긴 영역의 길이를 내보냅니다.Sample Input
5 5 1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8 13 12 11 10 9 Sample Output
25
동적 기획의 제목 상태 이동 방정식: dp[x][y]=max{네 방향의 값} 사실 이 제목은 기억화 검색과 동적 기획의 관계와 관련이 있다.나는 동태계획을 처음 배웠는데 이런 제목을 알아차리고 뻔뻔스럽게 정리했다. if(dp[x][y])returndp[x][y];이 문장은 DFS 함수에서 매우 중요하고 기억화 검색의 원천이다.http://blog.csdn.net/dacc123/article/details/50317371이 블로그에서 나는 이 제목과 관련이 있다고 생각한다. 마찬가지로 깊이 있게 우선적으로 검색하는 형식으로 동적 계획을 완성했다.차이점은 이것이 한 집합면에서 최대치를 찾았고 다른 하나는 직접 계승되었다는 것이다.앞으로도 계속 관심을 가지고 총결산을 해야 한다.
#include <iostream>
#include <string.h>
#include <math.h>
#include <algorithm>
#include <stdlib.h>
using namespace std;
int n,m;
int a[105][105];
int dp[105][105];//
int dir[4][2]={{1,0},{-1,0},{0,1},{0,-1}};
bool tag;
int maxin;
int DFS(int x,int y)
{
if(dp[x][y])
return dp[x][y];
int res=0;
for(int i=0;i<4;i++)
{
int xx=x+dir[i][0];
int yy=y+dir[i][1];
if(xx<0||xx>n-1||yy<0||yy>m-1)
continue;
if(a[xx][yy]<a[x][y])
res=max(res,DFS(xx,yy));
}
dp[x][y]=res+1;
return dp[x][y];
}
int main()
{
int ans;
while(scanf("%d%d",&n,&m)!=EOF)
{
memset(dp,0,sizeof(dp));
ans=0;
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
scanf("%d",&a[i][j]);
}
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
if(ans<DFS(i,j))
ans=DFS(i,j);
}
}
printf("%d
",ans);
}
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
UVA 7508황후·(2)+예처리+귀속#include #include #include #include #include #include #include #include #include #include #include #include #include usi...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.