poj 3176 dp

2179 단어 poj
poj 3176 dp
이 원제를 찌르다
대체적인 제목: 숫자 피라미드를 드리겠습니다. 점마다 권한이 있습니다. 점마다 한 줄에 인접한 두 개의 점만 선택할 수 있습니다.
아이디어: of course dp.이 문제는 그런대로 순조롭게 쓴 편이다.사실이 증명하듯이 문제는 숙련된 orz입니다.dp[i][j]는 가장 긴 경로를 표시하고 아래에서 위로 브러시를 하기 때문에 방정식: dp[i][j]=map[i][j]+max(dp[i+1][j], dp[i+1][j+1]);와르르
#include<cstdio>
#include<algorithm>
#define maxn 351
using namespace std;
int map[maxn][maxn];
int dp[maxn][maxn];
int n;
int i,j,k;
int main()
{
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
        for(j=1;j<=i;j++)
        {
            scanf("%d",&map[i][j]);
            if(i == n)
            dp[i][j]=map[i][j];
        }
    }
    for(i=n-1;i>=1;i--)
    {
        for(j=1;j<=i;j++)
        {
            dp[i][j]=map[i][j]+max(dp[i+1][j],dp[i+1][j+1]);
        }
    }
    printf("%d",dp[1][1]);
    return 0;
}

좋은 웹페이지 즐겨찾기