51nod 1083 矩阵取数问题

来源:互联网 发布:以色列巴勒斯坦知乎 编辑:程序博客网 时间:2024/05/29 07:23
题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1083
题目:一个N*N矩阵中有不同的正整数,经过这个格子,就能获得相应价值的奖励,从左上走到右下,只能向下向右走,求能够获得的最大价值。
例如:3 * 3的方格。

1 3 3
2 1 3
2 2 1

能够获得的最大价值为:11。
N最大500

简单dp。
#include <iostream>#include<bits/stdc++.h>#define N 550using namespace std;int d[N][N],mp[N][N];int main(){    int n;    scanf("%d",&n);    memset(mp,0,sizeof(mp));    for(int i=1;i<=n;i++)        for(int j=1;j<=n;j++)            scanf("%d",&mp[i][j]);    for(int i=1;i<=n;i++)        for(int j=1;j<=n;j++)            d[i][j]=max(d[i-1][j],d[i][j-1])+mp[i][j];    cout<<d[n][n]<<endl;}

0 0
原创粉丝点击