题意:

有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)相关推荐

  1. 递推DP UVA 590 Always on the run

    题目传送门 题意:题意难懂,就是一个小偷在m天内从城市1飞到城市n最小花费,输入的是每个城市飞到其他城市的航班. 分析:dp[i][j] 表示小偷第i天在城市j的最小花费.状态转移方程:dp[i][j ...

  2. uva 590 dp

    UVA 590 - Always on the run 小偷要从城市1经过k天道城市n,给出这n个城市之间的航班表,要求第k天到城市n的最小花费. dp[i][j] 第i天小偷在城市j的最小花费. 枚 ...

  3. UVA 11584 Partitioning by Palindromes (字符串区间dp)

    题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem ...

  4. Uva 1025 - A Spy in the Metro(DP)

    题目链接 https://vjudge.net/problem/UVA-1025 [题意]        某城市里的地铁是线性的,有n个车站(2<=n<=50),有M1辆列车从第1站从左往 ...

  5. UVA 6177 The King's Ups and Downs DP

    orz想了好久好久的排列组合,未果,考虑不全--DP好难啊233333 题目链接戳这里 抛开整体不考虑,我们来考虑一下第i位(k)的插入问题: 第i位>第i-1位时,插入条件为第i-1位< ...

  6. 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 ...

  7. UVA 11600 Masud Rana(期望+状压DP)

    题意:n个城市,城市间两两有一条道路,m条道路是没有怪物的,每天随机选一个城市(除了本身),走过去,消灭途中的怪物,如果消灭完后,所有城市都可以不通过有怪物的道路到达就结束,问平均需要的天数. 分析: ...

  8. π-Algorithmist分类题目(3)

    原题网站:Algorithmist,http://www.algorithmist.com/index.php/Main_Page π-Algorithmist分类题目(3) Probability ...

  9. UVa在线比赛单题汇总-----DP专题

    动态规划基础 例题 LA 3882 UVa 3882 - And Then There Was One 递推------------无力orz UVa 10635 10635 - Prince and ...

最新文章

  1. 【校招面试 之 C/C++】第16题 C++ new和delete的实现原理
  2. Xen Server二安装xc及管理xen主机
  3. linux 文件批量转utf8
  4. PowerShell渗透工具Nishang
  5. java 中sub,Fn :: Sub中的嵌套Fn :: ImportValue不适用于SAM模板
  6. jdialog 数据量大加载出现白板_王者荣耀:队友真的有人机?白板熟练进排位,资料面都是假的...
  7. 马云曾卖鲜花,柳传志卖冰箱!摆摊吧,程序员!
  8. Android知识散点
  9. sysbench的框架实现介绍 1
  10. 关于Microsoft Edge主页被360劫持
  11. 一道金蝶校园招聘试题数据库笔试题
  12. 基于UP30飞控系统的无人机地面站航线规划方法
  13. 倩女幽魂服务器维修什么意思,《倩女幽魂》2月7日游戏服务器维护内容
  14. DHT11温湿度传感器学习
  15. Java基础(一)之公共基础
  16. 几个免费的长链接缩短工具
  17. canal.admin、adapter和deployer的区别
  18. A53内核板卡,平板电脑、电视盒子完美方案
  19. GlobalCash全球付万事达虚拟信用卡-可用于国外支付购物
  20. 联网查看图片的Demo

热门文章

  1. 萌新资源 | 3D基础——渲染基本原理介绍
  2. 腾讯云为小游戏开发者升级工具箱 小游戏联机对战引擎免费用
  3. 五个简单的原则,带你写出整洁代码
  4. 关于MyBatis框架这一篇就够了
  5. Linux复习资料(一)、VM虚拟机安装教程
  6. sqlplus -prelim,sqplus区别
  7. nginx 安装、操作命令、基本配置与参数说明
  8. Spring中@Resource与@Autowired、@Qualifier的用法与区别
  9. python webdriver api-操作日期元素的方法
  10. CSS深入理解流体特性和BFC特性下多栏自适应布局