DP水题

求从上到下走完,使所取得权值最小,并输出路径,若有多个满足,则输出靠右的

#include "stdio.h"
#include "string.h" int inf=0x3f3f3f3f; struct node
{
int x,y;
}dp[110][110];
int main()
{
int Case,ii,i,j,n,m,ans;
int a[110][110];
scanf("%d",&Case);
for (ii=1;ii<=Case;ii++)
{
scanf("%d%d",&n,&m);
for (i=1;i<=n;i++)
for (j=1;j<=m;j++)
scanf("%d",&a[i][j]); memset(dp,inf,sizeof(dp)); for (i=1;i<=m;i++)
dp[n][i].x=a[n][i]; for (i=n-1;i>=1;i--)
for (j=1;j<=m;j++)
{
dp[i][j].x=dp[i+1][j].x+a[i][j];
dp[i][j].y=j; if (j-1>=1 && dp[i+1][j-1].x+a[i][j]<dp[i][j].x)
{
dp[i][j].x=dp[i+1][j-1].x+a[i][j];
dp[i][j].y=j-1;
} if (j+1<=m && dp[i+1][j+1].x+a[i][j]<=dp[i][j].x)
{
dp[i][j].x=dp[i+1][j+1].x+a[i][j];
dp[i][j].y=j+1;
}
}
ans=inf;
for (i=1;i<=m;i++)
if (dp[1][i].x<=ans)
{
ans=dp[1][i].x;
j=i;
}
printf("Case %d\n",ii);
printf("%d",j);
for (i=1;i<n;i++)
{
j=dp[i][j].y;
printf(" %d",j);
}
printf("\n");
}
return 0;
}

HDU 5092 DP的更多相关文章

  1. hdu 3016 dp+线段树

    Man Down Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total S ...

  2. HDU 5928 DP 凸包graham

    给出点集,和不大于L长的绳子,问能包裹住的最多点数. 考虑每个点都作为左下角的起点跑一遍极角序求凸包,求的过程中用DP记录当前以j为当前末端为结束的的最小长度,其中一维作为背包的是凸包内侧点的数量.也 ...

  3. HDU 5092 Seam Carving (dp)

    题意,给一个数字矩阵,要求从上往下的一条路径,使这条路径上数字之和最小,如有多条输出最靠右的一条. 数字三角形打印路径... 一般打印路径有两种选择,一是转移的时候加以记录,二是通过检查dp值回溯. ...

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

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

  5. HDU 5092

    http://acm.hdu.edu.cn/showproblem.php?pid=5092 卡读题,实质是每行取一个点,从上到下找一条路径权值和最小,点可以到达的地方是周围八个格子 类似数塔的dp, ...

  6. hdu 5092 线裁剪(纵向连线最小和+输出路径)

    http://acm.hdu.edu.cn/showproblem.php?pid=5092 给一个m*n的矩阵,找到一个纵向的"线"使得线上的和最小并输出这条线,线能向8个方向延 ...

  7. HDU 1069 dp最长递增子序列

    B - Monkey and Banana Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I6 ...

  8. HDU 1160 DP最长子序列

    G - FatMouse's Speed Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64 ...

  9. hdu 4826(dp + 记忆化搜索)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4826 思路:dp[x][y][d]表示从方向到达点(x,y)所能得到的最大值,然后就是记忆化了. #i ...

随机推荐

  1. AngularJS 用 $http.jsonp 跨域SyntaxError问题

    必须添加参数:callback=JSON_CALLBACK , 才能进success方法,如下: $http.jsonp("https://request.address.json?call ...

  2. android 百度地图demo 随感

    最近项目组的老大要我对百度的android的sdk进行一段的预研,由于技术太菜,出了不少的错误,因此有一点感悟了. 嗨,这个错误浪费了我一天的时间的时候,我按照百度的技术文档一步步的来做,每部基本上都 ...

  3. sublime uable to read project

    在我用Sublime Text打开工程时出现这种情况: Unable to read project <path>/<project>.sublime-project这种错误对 ...

  4. System.Windows.Forms.ListView : Control

    #region 程序集 System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 ...

  5. Java 调用Web service 加入认证头(soapenv:Header)

    前言 有时候调用web service 会出现 Message does not conform to configured policy [ AuthenticationTokenPolicy(S) ...

  6. Visual Studio 2008破解90天试用期

    Visual Studio 2008破解90天试用期变成正式版的方法: 第一种方法(安装前用): 把iso文件中的setup文件夹中的setup.sdb文件中的[Product Key]下的一行的原来 ...

  7. Jquery Types 小结

    JavaScript provides several built-in(内置的) datatypes. In addition to those, this page documents virtu ...

  8. php 内置函数JSON处理

    一:生成json数据 <?php $arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5); echo json_enco ...

  9. Hibernate(五)基本数据类型

    一.Hibernate的基本数据类型 3种数据类型之间的对应关系 Hibernate映射类型 Java类型 标准SQL类型 integer java.lang.Integer INTEGER long ...

  10. Spring boot发送邮件

    最近接到一个需求:分配任务给用户时,发送邮件提醒用户. 后端应该和Andorid一样有现成的api支持,浏览器里搜索了下,果不其然,很轻松就实现了这个功能,现在记录下. 首先添加Maven依赖 < ...