【NOIOPJ】P7614 最低通行费
来源:互联网 发布:java 图片转avi 编辑:程序博客网 时间:2024/06/11 09:20
原题
描述一个商人穿过一个 N*N 的正方形的网格,去参加一个非常重要的商务活动。他要从网格的左上角进,右下角出。每穿越中间1个小方格,都要花费1个单位时间。商人必须在(2N-1)个单位时间穿越出去。而在经过中间的每个小方格时,都需要缴纳一定的费用。这个商人期望在规定时间内用最少费用穿越出去。请问至少需要多少费用?注意:不能对角穿越各个小方格(即,只能向上下左右四个方向移动且不能离开网格)。输入第一行是一个整数,表示正方形的宽度N (1 <= N < 100);后面 N 行,每行 N 个不大于 100 的整数,为网格上每个小方格的费用。输出至少需要的费用。样例输入51 4 6 8 10 2 5 7 15 17 6 8 9 18 20 10 11 12 19 21 20 23 25 29 33 样例输出109提示样例中,最小值为109=1+2+5+7+9+12+19+21+33。
这道题目拿到就会想,这不就是一个简单的DP吗?状态转移方程如下:
f[i][j]=min(f[i-1][j],f[i][j-1])+a[i][j];
所以就水水的过去了!
#include<stdio.h>#include<stdlib.h>#include<iostream>#include<string.h>using namespace std;int f[1001][1001],a[1001][1001];int main(){ int i,j,k,n,m; cin>>n; for(i=1;i<=n;i++) for(j=1;j<=n;j++) cin>>a[i][j]; memset(f,127/3,sizeof(f)); f[1][0]=0;f[0][1]=0; for(i=1;i<=n;i++) for(j=1;j<=n;j++) f[i][j]=min(f[i][j-1],f[i-1][j])+a[i][j]; printf("%d\n",f[n][n]); return 0;}
阅读全文
1 0
- 【NOIOPJ】P7614 最低通行费
- 最低通行费
- 最低通行费
- 最低通行费
- 19:最低通行费
- 动态规划--最低通行费
- 19:最低通行费
- 19:最低通行费
- 动态规划:最低通行费
- 7614:最低通行费
- 7614_最低通行费
- 7614:最低通行费
- NOI库7614 最低通行费
- [OpenJudge-NOI]最低通行费 Dp
- [NOI题库]7614:最低通行费
- 动态规划练习一 19:最低通行费
- 动态规划练习题-19(最低通行费)
- dp专题 第十九题 最低通行费
- Java 包(package)
- html5 canvas元素使用(一)
- php返回json数据简单实例
- 线性回归与随机梯度下降
- 【JAVA】泛型 学习笔记
- 【NOIOPJ】P7614 最低通行费
- JS的this总结(下)-ES6箭头函数this指向
- android包冲突
- Java 编程思想(一)面向对象和JVM基础
- Unity3d中信息的保存与加载
- Java中遍历 hashtable的方法
- sql脚本简便导入到mysql
- Hbase Shell 基本使用
- 通俗易懂类加载机制