zoukankan      html  css  js  c++  java
  • 聪明的kk (nyoj 171) [动态规划]

    本题是一个很基础的动态规划,与动态规划里的最短路径类似。本题可以采用标记数组,也可以不采用标记数组。(本代码未采用标记数组)

    本题的动规思想主要是每一步的最优解都取决于上一步的最优解,以达到整体最优的目的。

    代码如下:

    #include<stdio.h>
    #define max(a,b) (a>b?a:b) 
    #define MAX_N 25
    #define MAX_M 25
    int map[MAX_N][MAX_M];
    int main(void)
    {
        int n,m; // n行 m列
        int i,j;    
        scanf("%d%d",&n,&m);
        for(i=1;i<=n;i++)
        {
            for(j=1;j<=m;j++)
            {
                scanf("%d",&map[i][j]);
            }
        }    
        for(i=1;i<=n;i++)
        {
            for(j=1;j<=m;j++)
            {
                map[i][j]=max(map[i-1][j],map[i][j-1])+map[i][j];
            //    printf("%d	",map[i][j]);
            }
        //    printf("
    ");
        }
        printf("%d
    ",map[n][m]);    
        return 0;     
    }

    本代码需要注意的还有一点就是运算符的优先级问题,三目运算符 ? : 的优先级较低,要用小括号将其括起来,否则程序会出错。

  • 相关阅读:
    TensorFlow基础篇
    MySql分类
    VISUAL STUDIO 调试
    排序分类
    位分类
    Visio分类
    工作线程AfxBeginThread的使用
    Windows Live Writer配置步骤
    用户界面线程AfxBeginThread的使用
    WIndows 相关知识
  • 原文地址:https://www.cnblogs.com/lbd_smile/p/4469524.html
Copyright © 2011-2022 走看看