storm

努力学习编译知识,恶补计算机体系结构!

第三届河南省大学生程序设计竞赛 聪明的“KK”

dp 问题,不过要注意开始的时候下表要考虑好,我是让d[][] 的四周空出一行,这样就不会出错了

#include<cstdio>
#include<cstdlib>
#include<iostream>
#include<algorithm>
#include<vector>
#include<cstring>
using namespace std;
int N, M;
int map[25][25], d[25][25];
int dp(int N, int M)
{
    memset(d, 0, sizeof(d)); 
    for(int i=0; i<=N; i++)
    for(int j=0; j<=M; j++)
    if(d[i+1][j]>d[i][j+1])
     d[i+1][j+1] = d[i+1][j] + map[i+1][j+1];
     else d[i+1][j+1] = d[i][j+1] + map[i+1][j+1];
     
   return d[N][M]; 
}
int main()
{
    scanf("%d %d",&N, &M);
    for(int i=1; i<=N; i++)
    for(int j=1; j<=M; j++)
    cin>>map[i][j];
    int t = dp(N,M);
    printf("%d\n",t);
   system("pause");
   return 0;
}


阅读更多
文章标签: system
个人分类: 算法
上一篇素 数
下一篇网络的可靠性
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭