zoukankan      html  css  js  c++  java
  • 方格巡游

    题目描述

    你被困在一个宽N格,长M格的方阵中。现在,你需要从第(1,1)格移动到(N,M)格。每个格子有一个价格Cij,代表经过这个格子需要付出的代价。数据保证起点及终点的代价为0。每次移动可以从当前格子移动到上、下、左、右四个相邻的格子(如果有的话)。现在问题来了:从第(1,1)

    输入格式

    第1行包含2个正整数N,M。
    接下来一个N*M的方阵,代表每个方格通过的代价。

    输出格式

    一个整数:从第(1,1)格移动到(N,M)格的最小代价。

    输入样例

    2 3
    0 1
    2 1
    2 0

    输出样例

    2

    数据范围

    30%的数据保证1≤N*M≤10.
    100%的数据保证1≤N,M≤100。

    代码

    #include <bits/stdc++.h>
    using namespace std;
    int n, m, a[101][101], dp[101][101];
    int main() {
    	scanf("%d %d", &n, &m);
    	for (register int i = 1; i <= n; i++) {
    		for (register int j = 1; j <= m; j ++) {
    			scanf("%d", &a[i][j]);
    		}
    	}
    	memset(dp, 0, sizeof(dp));
    	dp[1][1] = 0;
    	for (register int i = 1; i <= n;i++) {
    		for (register int j = 2; j <= m; j++){
    			dp[i][j] = min(dp[i - 1][j], dp[i][j - 1]) + a[i][j];
    		} 
    	}
    	cout << dp[n][m] << endl;
    	return 0;
    } 
    
  • 相关阅读:
    Python 函数 之 目录
    python---------匿名函数
    python-------递归函数
    python-----内置函数
    hibernate.cfg.xml
    struts2 工作原理
    拦截器
    js制作 子菜单
    struts---最简单实例步骤
    常用标签---地址----
  • 原文地址:https://www.cnblogs.com/LJA001162/p/13366934.html
Copyright © 2011-2022 走看看