码迷,mamicode.com
首页 > 其他好文 > 详细

最小伤害 题解

时间:2015-05-06 17:10:07      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:

问题描述

明明站在一个N x N的方阵中最左上角的格子里。他可以从一个格子走到它右边和下边的格子里。

每一个格子都有一个伤害值。他想在受伤害最小的情况下走到方阵的最右下角。

解题思路

一看就知道用DP。后一格的最小伤害,为它左边或上边格子的最小伤害加自己格子的伤害。

所以 f[i,j]:=min(f[i,j-1],f[i-1,j])+a[i,j]. 

边界 f[1,1]:=a[1,1]

       f[i,1]:=f[i-1,1]+a[i,1]

       f[1,j]:=f[1,j-1]+a[1,j]

程序供上

技术分享
uses math;
var n:longint;
    a,f:array[0..1000,0..1000]of longint;
    i,J:longint;
begin
read(n);
for i:=1 to n do
 for j:=1 to n do
  read(a[i,j]);
  f[1,1]:=a[1,1];
 for i:=2 to n do
 begin
 f[i,1]:=f[i-1,1]+a[i,1];
 f[1,i]:=f[1,i-1]+a[1,i];
 end;
for i:=2 to n do
 for j:=2 to n do
     f[i,j]:=min(f[i-1,j],f[i,j-1])+a[i,j];
write(f[n,n]);
end.
View Code

 

最小伤害 题解

标签:

原文地址:http://www.cnblogs.com/Herrwerner/p/4482168.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!