【题目链接】

ybt 1287:最低通行费
OpenJudge NOI 2.6 7614:最低通行费

【题目考点】

1. 动态规划:坐标型动规

【解题思路】

解法1:坐标型动规

限定商人必须在2N-1个单位时间穿越出去,那么该人每次只能向右或向下走。
a[i][j]为(i,j)位置需要缴纳的费用。

1. 状态定义

集合:从左上角到右下角的路径
限制:路径终点位置(i,j)
属性:缴纳费用
条件:最少
统计量:缴纳费用
状态定义dp[i][j]:从左上角(1,1)到(i,j)位置的所有路径中,缴纳费用最少的路径的缴纳费用。
初始状态dp[1][1]:(1,1)到(1,1)需要缴纳的费用,为a[i][j]

2. 状态转移方程

集合:从左上角(1,1)到(i,j)位置的所有路径
分割集合:根据如何到达(i,j)位置来分割集合

  • 如果i=1i=1i=1,那么到达(i,j)的前一个位置只能是(i,j-1),到达(i,j)的费用为从(1,1)到(i,j-1)的费用加上(i,j)位置的费用,即dp[i][j] = dp[i][j-1]+a[i][j]
  • 如果j=1j=1j=1,那么到达(i,j)的前一个位置只能是(i-1,j),到达(i,j)的费用为从(1,1)到(i-1,j)的费用加上(i,j)位置的费用,即dp[i][j] = dp[i-1][j]+a[i][j]
  • 如果i>1i>1i>1且j>1j>1j>1,那么到达(i,j)的前一个位置只能是(i-1,j)或(i, j-1)
    • 如果前一个位置是(i-1,j),到达(i,j)的费用为dp[i-1][j]+a[i][j]
    • 如果前一个位置是(i,j-1),到达(i,j)的费用为dp[i][j-1]+a[i][j]
    • 以上两种情况取费用较小的情况,即dp[i][j] = min(dp[i-1][j], dp[i][j-1])+a[i][j]

【题解代码】

解法1:坐标型动规

#include <bits/stdc++.h>
using namespace std;
#define N 105
int main()
{int n, dp[N][N], a[N][N];cin >> n;for(int i = 1; i <= n; ++i)for(int j = 1; j <= n; ++j)cin >> a[i][j];for(int i = 1; i <= n; ++i)for(int j = 1; j <= n; ++j){if(i == 1 && j == 1)dp[i][j] = a[i][j];else if(i == 1)dp[i][j] = dp[i][j-1] + a[i][j];else if(j == 1)dp[i][j] = dp[i-1][j] + a[i][j];elsedp[i][j] = min(dp[i-1][j], dp[i][j-1]) + a[i][j];}cout << dp[n][n];return 0;
}

信息学奥赛一本通 1287:最低通行费 | OpenJudge NOI 2.6 7614:最低通行费相关推荐

  1. 信息学奥赛一本通 1190:上台阶 | OpenJudge NOI 2.3 3525:上台阶

    [题目链接] ybt 1190:上台阶 OpenJudge NOI 2.3 3525:上台阶 注:ybt 1190最大数据数量为71,而OpenJudge 2.3 3525中最大数据数量为100.如果 ...

  2. 信息学奥赛一本通 1225:金银岛 | OpenJudge NOI 4.6 1797:金银岛

    [题目链接] ybt 1225:金银岛 OpenJudge NOI 4.6 1797:金银岛 [题目考点] 1. 贪心 2. 部分背包问题 [解题思路] 该题为部分背包问题 1. 贪心选择性质的证明: ...

  3. 信息学奥赛一本通 1226:装箱问题 | OpenJudge NOI 4.6 19:装箱问题

    [题目链接] ybt 1226:装箱问题 OpenJudge NOI 4.6 19:装箱问题 [题目考点] 1. 贪心 [解题思路] 该题说是三维立方体,实际上无论是包裹还是产品,高度都是h,因而不用 ...

  4. 信息学奥赛一本通 1216:红与黑 / OpenJudge NOI 2.5 1818

    [题目链接] ybt 1216:红与黑 OpenJudge NOI 2.5 1818:红与黑 [题目考点] 1. 连通块问题 2. 深搜/广搜 [解题思路] 1. 深搜 从第一个格子出发,遍历所有可以 ...

  5. 信息学奥赛一本通 1115:直方图 | OpenJudge NOI 1.9 09

    [题目链接] ybt 1115:直方图 OpenJudge NOI 1.9 09:直方图 [题目考点] 1. 散列存储 也叫哈希存储.其思想为:将要存储的值通过某种算法映射到存储地址,映射算法为散列函 ...

  6. 信息学奥赛一本通 1114:白细胞计数 | OpenJudge NOI 1.9 08

    [题目链接] ybt 1114:白细胞计数 OpenJudge NOI 1.9 08:白细胞计数 [题目考点] 1. 求数组中最大值及其下标 方法1:保存最大值和下标 设置临时最大值变量mx,mx的初 ...

  7. 信息学奥赛一本通 1109:开关灯 | OpenJudge NOI 1.5 31:开关灯

    [题目链接] ybt 1109:开关灯 OpenJudge NOI 1.5 31:开关灯 [题目考点] 1. 模拟 2. 循环.数组 3. 用逗号分隔输出 设标志位:isFirst,表示现在输出的是否 ...

  8. 信息学奥赛一本通 1073:救援 | OpenJudge NOI 1.5 19:救援

    [题目链接] ybt 1073:救援 OpenJudge NOI 1.5 19:救援 [题目考点] 1. 直角坐标系下某点到原点的距离 点(x,y)(x,y)(x,y)到原点的距离d=x2+y2d = ...

  9. 信息学奥赛一本通 1070:人口增长 | OpenJudge NOI 1.5 14:人口增长问题

    [题目链接] ybt 1070:人口增长 OpenJudge NOI 1.5 14:人口增长问题 [题目考点] 1. 循环求幂 设变量r初始值为1:int r = 1; 循环n次每次循环中输入变量a, ...

最新文章

  1. 又是加拿大!连年拒签NeurIPS参会者被指太荒唐,Hinton亲自过问也没辙
  2. 开源路由器爱好者迎来利好 Linksys不变
  3. python方法查看_关于查看python的trace的方法
  4. grafana mysql插件_grafana插件动态数据
  5. ORB-SLAM2 地图加载2
  6. python ip代理池维护_python3编写网络爬虫18-代理池的维护
  7. 10分钟入门HTML
  8. 对于长沙互联网发展,一个外来两年Java程序员的所见所感所愿
  9. 【入门】求三个数的平均数
  10. 【测试】对网易邮箱登录的测试流程
  11. Dataframe两个表格合并
  12. CSS calc()函数
  13. 怎么去学习绘画格子裙?该怎么画格子裙?
  14. Windows 系统重装 - Mac 制作 Win10 启动盘
  15. springMVC中拦截器执行时机和执行顺序分析
  16. cfa三级真题和mock_cfa mock和真题哪个难(cfa mock和真题差别)
  17. kafka高性能的原因
  18. 设计一个对银行账户余额操作的简单程序(Java)
  19. 简单爬取链家上广州的租房信息
  20. mac上传文件到CentOS云服务器

热门文章

  1. IOS 本地推送和远程推送
  2. 安装uve-cli,并使用vue ui可视化界面创建第一个vue项目
  3. 遭遇潜规则惨遭性侵的16大女星
  4. 解析「觞定关中.何干」 美学文创白酒品类
  5. 大专学数控技术是计算机一类的吗,大专里的数控专业的内容是什么?
  6. SDRSharp安装插件
  7. 关于拟认定为杨浦区第八批区块链企业的名单公示
  8. Outlook - 如何设置会议应答后不自动删除会议邮件?
  9. 如何关闭计算机的远程服务功能,如何远程关闭计算机,介绍远程关闭命令的操作方法...
  10. CentOS 使用yum安装 pip