UVa 590 Always on the run(简单链式DP)
题意:
有n座城市,Trisha要求在这n座城市旅游k天,从城市1出发,第k天到达城市n。
输入有n*(n-1)行,每n-1行代表i到除了i之外的其他城市航班的天数以及价格。
求出Trisha的最小花费。
思路:
链式dp,dp[i][d]代表第d天到达i城市所需要的最小代价,于是dp[i][d] = min(dp[i][d], dp[j][d-1] + price[j][i][X])。
意思是:第d天到达i城市所花费的代价是,第d-1天到达j城市 + j到i的价格 最小的一个。
由于初识状态只有一个,即从城市1出发。所以初始值只有一个dp[1][0] = 0。
#include <cstdio> #include <cstdlib> #include <cstring> #include <climits>#define min(a,b) (((a) < (b)) ? (a) : (b))int day[15][15]; int price[15][15][35]; int dp[15][1005];int main() {int n, k;int cases = 0;while (scanf("%d %d", &n, &k) && n && k){for (int i = 1; i <= n; ++i)for (int j = 1; j <= n; ++j)if (i != j) {scanf("%d", &day[i][j]);for (int d = 1; d <= day[i][j]; ++d)scanf("%d", &price[i][j][d]);}for (int i = 0; i <= n; ++i){for (int d = 0; d <= k; ++d)dp[i][d] = INT_MAX;}dp[1][0] = 0;for (int d = 1; d <= k; ++d)for (int i = 1; i <= n; ++i)for (int j = 1; j <= n; ++j)if (i != j){int q = (d - 1) % day[j][i] + 1;if (price[j][i][q] && dp[j][d-1] != INT_MAX)dp[i][d] = min(dp[i][d], dp[j][d-1] + price[j][i][q]);}printf("Scenario #%d\n", ++cases);if (dp[n][k] != INT_MAX)printf("The best flight costs %d.\n\n", dp[n][k]);elseprintf("No flight possible.\n\n");}return 0; }
转载于:https://www.cnblogs.com/kedebug/archive/2012/11/19/2776892.html
UVa 590 Always on the run(简单链式DP)相关推荐
- 递推DP UVA 590 Always on the run
题目传送门 题意:题意难懂,就是一个小偷在m天内从城市1飞到城市n最小花费,输入的是每个城市飞到其他城市的航班. 分析:dp[i][j] 表示小偷第i天在城市j的最小花费.状态转移方程:dp[i][j ...
- uva 590 dp
UVA 590 - Always on the run 小偷要从城市1经过k天道城市n,给出这n个城市之间的航班表,要求第k天到城市n的最小花费. dp[i][j] 第i天小偷在城市j的最小花费. 枚 ...
- UVA 11584 Partitioning by Palindromes (字符串区间dp)
题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem ...
- Uva 1025 - A Spy in the Metro(DP)
题目链接 https://vjudge.net/problem/UVA-1025 [题意] 某城市里的地铁是线性的,有n个车站(2<=n<=50),有M1辆列车从第1站从左往 ...
- UVA 6177 The King's Ups and Downs DP
orz想了好久好久的排列组合,未果,考虑不全--DP好难啊233333 题目链接戳这里 抛开整体不考虑,我们来考虑一下第i位(k)的插入问题: 第i位>第i-1位时,插入条件为第i-1位< ...
- UVA 1631 Locker(HDU 4433)(DP)
A password locker with N digits, each digit can be rotated to 0-9 circularly. You can rotate 1-3 con ...
- UVA 11600 Masud Rana(期望+状压DP)
题意:n个城市,城市间两两有一条道路,m条道路是没有怪物的,每天随机选一个城市(除了本身),走过去,消灭途中的怪物,如果消灭完后,所有城市都可以不通过有怪物的道路到达就结束,问平均需要的天数. 分析: ...
- π-Algorithmist分类题目(3)
原题网站:Algorithmist,http://www.algorithmist.com/index.php/Main_Page π-Algorithmist分类题目(3) Probability ...
- UVa在线比赛单题汇总-----DP专题
动态规划基础 例题 LA 3882 UVa 3882 - And Then There Was One 递推------------无力orz UVa 10635 10635 - Prince and ...
最新文章
- 【校招面试 之 C/C++】第16题 C++ new和delete的实现原理
- Xen Server二安装xc及管理xen主机
- linux 文件批量转utf8
- PowerShell渗透工具Nishang
- java 中sub,Fn :: Sub中的嵌套Fn :: ImportValue不适用于SAM模板
- jdialog 数据量大加载出现白板_王者荣耀:队友真的有人机?白板熟练进排位,资料面都是假的...
- 马云曾卖鲜花,柳传志卖冰箱!摆摊吧,程序员!
- Android知识散点
- sysbench的框架实现介绍 1
- 关于Microsoft Edge主页被360劫持
- 一道金蝶校园招聘试题数据库笔试题
- 基于UP30飞控系统的无人机地面站航线规划方法
- 倩女幽魂服务器维修什么意思,《倩女幽魂》2月7日游戏服务器维护内容
- DHT11温湿度传感器学习
- Java基础(一)之公共基础
- 几个免费的长链接缩短工具
- canal.admin、adapter和deployer的区别
- A53内核板卡,平板电脑、电视盒子完美方案
- GlobalCash全球付万事达虚拟信用卡-可用于国外支付购物
- 联网查看图片的Demo
热门文章
- 萌新资源 | 3D基础——渲染基本原理介绍
- 腾讯云为小游戏开发者升级工具箱 小游戏联机对战引擎免费用
- 五个简单的原则,带你写出整洁代码
- 关于MyBatis框架这一篇就够了
- Linux复习资料(一)、VM虚拟机安装教程
- sqlplus -prelim,sqplus区别
- nginx 安装、操作命令、基本配置与参数说明
- Spring中@Resource与@Autowired、@Qualifier的用法与区别
- python webdriver api-操作日期元素的方法
- CSS深入理解流体特性和BFC特性下多栏自适应布局