题意,给一个数字矩阵,要求从上往下的一条路径,使这条路径上数字之和最小,如有多条输出最靠右的一条。

数字三角形打印路径。。。

一般打印路径有两种选择,一是转移的时候加以记录,二是通过检查dp值回溯。

  1. #include<cstdio>
  2. #include<cstring>
  3. #include<vector>
  4. using namespace std;
  5. const int maxn = ;
  6. int g[maxn+][maxn];
  7. int d[maxn+][maxn];
  8. int pa[maxn+][maxn];
  9. int m,n;
  10. const int INF = 1e9;
  11. void init(){
  12. memset(*pa,-,sizeof(*pa));
  13. for(int i = ; i < maxn; i++)
  14. d[i][] = INF;
  15. }
  16.  
  17. vector<int> ans;
  18. void print_ans(int s){
  19. ans.clear();
  20. ans.push_back(s);
  21. for(int i = m-; i > ; i--){
  22. s = pa[i][s];
  23. ans.push_back(s);
  24. }
  25. for(int i = ans.size()-; i > ;i--){
  26. printf("%d ",ans[i]);
  27. }
  28. printf("%d\n",ans[]);
  29. }
  30.  
  31. void work()
  32. {
  33. for(int i = ; i <= n; i++ )
  34. d[][i] = g[][i];
  35. for(int i = ; i < m; i++){
  36. d[i][n+] = INF;
  37. }
  38. for(int i = ; i < m ;i++){
  39. for(int j = ; j <= n ; ++j ){
  40. int Min = -;
  41. for(int k = ; k <=; k++){
  42. if(d[i-][j+k] <= d[i-][j+Min]){
  43. Min = k;
  44. }
  45. }
  46. pa[i][j] = j+Min;
  47. d[i][j] = d[i-][j+Min] + g[i][j];
  48. }
  49. }
  50. int Min = ;
  51. for(int i = ; i <= n; i++ ){
  52. if(d[m-][Min] >= d[m-][i]){
  53. Min = i;
  54. }
  55. }
  56. print_ans(Min);
  57. }
  58.  
  59. int main()
  60. {
  61. int T;
  62. init();
  63. scanf("%d",&T);
  64. for(int i = ; i <= T; i++){
  65. printf("Case %d\n",i);
  66. scanf("%d%d",&m,&n);
  67. for(int i = ; i < m; i++)
  68. for(int j = ; j <= n; j++)
  69. scanf("%d",g[i]+j);
  70. work();
  71. }
  72. return ;
  73. }

HDU 5092 Seam Carving (dp)的更多相关文章

  1. hdu 5092 Seam Carving (简单数塔DP,题没读懂,,不过可以分析样例)

    题意: 给一个m*n的矩阵,每格上有一个数. 找从第1行到第m行的一条路径,使得这条路径上的数之和最小. 路径必须满足相邻两行所选的两个数的纵坐标相邻(即一个格子必须是另一个格子的周围八个格子中的一个 ...

  2. HDU 5791:Two(DP)

    http://acm.hdu.edu.cn/showproblem.php?pid=5791 Two Problem Description   Alice gets two sequences A ...

  3. HDU 4833 Best Financing(DP)(2014年百度之星程序设计大赛 - 初赛(第二轮))

    Problem Description 小A想通过合理投资银行理财产品达到收益最大化.已知小A在未来一段时间中的收入情况,描述为两个长度为n的整数数组dates和earnings,表示在第dates[ ...

  4. HDU 4833 Best Financing (DP)

    Best Financing Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  5. HDU 1422 重温世界杯(DP)

    点我看题目 题意 : 中文题不详述. 思路 : 根据题目描述及样例可以看出来,如果你第一个城市选的是生活费减花费大于等于0的时候才可以,最好是多余的,这样接下来的就算是花超了(一定限度内的花超),也可 ...

  6. HDU 1176 免费馅饼(DP)

    点我看题目 题意 : 中文题.在直线上接馅饼,能接的最多是多少. 思路 :这个题其实以前做过.....你将这个接馅饼看成一个矩阵,也不能说是一个矩阵,反正就是一个行列俱全的形状,然后秒当行,坐标当列, ...

  7. hdu 4055 Number String(dp)

    Problem Description The signature of a permutation is a string that is computed as follows: for each ...

  8. 【HDU - 4345 】Permutation(DP)

    BUPT2017 wintertraining(15) #8F 题意 1到n的排列,经过几次置换(也是一个排列)回到原来的排列,就是循环了. 现在给n(<=1000),求循环周期的所有可能数. ...

  9. HDU 5375 Gray code(DP)

    题意:给一串字符串,里面可能出现0,1,?,当中问号可能为0或1,将这个二进制转换为格雷码后,格雷码的每位有一个权值,当格雷码位取1时.加上该位权值,求最大权值和为多少. 分析:比赛的时候愚了.竟然以 ...

随机推荐

  1. maven导入jar包失败

    找到原来的jar包位置,删除,然后重新导入,还是未成功.采取了网上的各种办法,还是不行.最简单的办法就是,重装下eclipse,以及maven配置.

  2. linux命令之curl,wget

    curl由于可自定义各种请求参数所以在模拟web请求调试网页方面更擅长:wget由于支持ftp和Recursive所以在下载文件方面更擅长.类比的话curl是浏览器,而wget是迅雷9. 在下载上,也 ...

  3. cogs1583. [POJ3237]树的维护

    1583. [POJ3237]树的维护 http://www.cogs.pro/cogs/problem/problem.php?pid=1583 ★★★☆   输入文件:maintaintree.i ...

  4. [Xcode 实际操作]六、媒体与动画-(1)使用图形上下文按一定比例缩放图片

    目录:[Swift]Xcode实际操作 本文将演示如何通过图形上下文,来实现图片缩放的功能. 在项目导航区,打开视图控制器的代码文件[ViewController.swift] import UIKi ...

  5. SpringMVC 的数据绑定

    1.数据自动绑定 SpringMVC 框架支持不需要任何数据绑定的注解直接将表单参数绑定到我们的执行方法的参数上. 表单参数:包括 POST 以及 GET 发送过来的参数 就是以内容类型为:encty ...

  6. 洛谷P4822 冻结

    题目描述 "我要成为魔法少女!" "那么,以灵魂为代价,你希望得到什么?" "我要将有关魔法和奇迹的一切,封印于卡片之中„„" 在这个愿望被 ...

  7. this真题编译

    1 x y z分别输出的是什么? var x=1,  y=z=0; function add(n){ return n= n+1; }; y=add(x); function add(n){ retu ...

  8. TPU的相关资料

    1.谷歌 TPU 的强大与局限:TPU/GPU/CPU性能功耗全面对比:http://www.sohu.com/a/134315786_473283 2.谷歌发布TPU论文,75位联合作者,GPU迎来 ...

  9. jetty jndi数据源

    applicationContext.xml <?xml version="1.0" encoding="utf-8"?> <beans de ...

  10. 【手撸一个ORM】第三步、SQL语句构造器和SqlParameter封装

    既然是数据库工具,自然少不了增删改查的sql语句,在这里将这些常用SQL拼接操作集成到 [SqlServerBuilder.cs] 当中,方便后面调用. 近几年在项目中一直使用Dapper操作数据库, ...