vijosP1006 晴天小猪历险记之Hill

链接:https://vijos.org/p/1006

【思路】

图上DP。

这个题的递推顺序是关键。先从上一行得到最小值,然后从本行比较最小值,注意本行、本行与上一行之间的第一段与最后一段是相通的。

【代码】

 1 #include<cstdio>
 2 #include<iostream>
 3 #include<cstring>
 4 #define FOR(a,b,c) for(int a=(b);a<=(c);a++)
 5 using namespace std;
 6
 7 const int maxn  = 1000+10;
 8 const int INF=1<<30;
 9
10 int w[maxn][maxn],d[maxn][maxn];
11 int n;
12
13 int main()
14 {
15      scanf("%d",&n);
16      FOR(i,1,n) FOR(j,1,i) scanf("%d",&w[i][j]);
17      memset(d,25,sizeof(d));
18      d[n][0]=0;
19      FOR(i,1,n) d[n][i]=d[n][i-1]+w[n][i];
20      for(int i=n-1;i;i--)
21      {
22          FOR(j,1,i) {
23              if(j==1)
24                  d[i][j]=min(d[i+1][i+1],min(d[i+1][j],d[i+1][j+1]))+w[i][j];
25              else if(j==i) {
26                   d[i][j]=min(d[i+1][1],min(d[i+1][j],d[i+1][j+1]))+w[i][j];
27              }
28              else
29                    d[i][j]=min(d[i+1][j],d[i+1][j+1]) + w[i][j];
30          }
31          d[i][1] = min(d[i][1],d[i][i]+w[i][1]);
32         FOR(j,2,i) d[i][j] = min(d[i][j],d[i][j-1] + w[i][j]);
33         for(int j=i-1;j;j--) d[i][j] = min(d[i][j],d[i][j+1] + w[i][j]);
34      }
35      printf("%d\n",d[1][1]);
36      return 0;
37 }

vijosP1006 晴天小猪历险记之Hill相关推荐

  1. vijos 1006 晴天小猪历险记之Hill——数字三角形的终极变化

    题目链接:https://vijos.org/p/1006 数字三角形原题看这里:http://www.cnblogs.com/huashanqingzhu/p/7326837.html 背景 在很久 ...

  2. 晴天小猪历险记之Hill

    题目描述 这一天,他来到了一座深山的山脚下,因为只有这座深山中的一位隐者才知道这种药草的所在.但是上山的路错综复杂,由于小小猪的病情,晴天小猪想找一条需时最少的路到达山顶,但现在它一头雾水,所以向你求 ...

  3. 【vijos】1006 晴天小猪历险记之Hill(dijkstra)

    https://vijos.org/p/1006 连边后跑点权的最短路 注意连边的时候左端点可以连到下一行的右端点,右端点可以连到下一行的左端点 #include <cstdio> #in ...

  4. 18.03.06 vijos1006 晴天小猪历险记之Hill

    背景 在很久很久以前,有一个动物村庄,那里是猪的乐园(^_^),村民们勤劳.勇敢.善良.团结-- 不过有一天,最小的小小猪生病了,而这种病是极其罕见的,因此大家都没有储存这种药物.所以晴天小猪自告奋勇 ...

  5. P1006晴天小猪历险记之Hill

    背景 在很久很久以前,有一个动物村庄,那里是猪的乐园(^_^),村民们勤劳.勇敢.善良.团结-- 不过有一天,最小的小小猪生病了,而这种病是极其罕见的,因此大家都没有储存这种药物.所以晴天小猪自告奋勇 ...

  6. voj1006 晴天小猪历险记之Hill

    背景 Background   在很久很久以前,有一个动物村庄,那里是猪的乐园(^_^),村民们勤劳.勇敢.善良.团结-- 不过有一天,最小的小小猪生病了,而这种病是极其罕见的,因此大家都没有储存这种 ...

  7. 回档|晴天小猪历险记之hill

    背景 Background 在很久很久以前,有一个动物村庄,那里是猪的乐园(^_^),村民们勤劳.勇敢.善良.团结-- 不过有一天,最小的小小猪生病了,而这种病是极其罕见的,因此大家都没有储存这种药物 ...

  8. Vijos 1006 晴天小猪历险记之Hill 单源单汇最短路

    背景 在很久很久以前,有一个动物村庄,那里是猪的乐园(^_^),村民们勤劳.勇敢.善良.团结-- 不过有一天,最小的小小猪生病了,而这种病是极其罕见的,因此大家都没有储存这种药物.所以晴天小猪自告奋勇 ...

  9. 晴天小猪历险记之Hill解题报告

    和数字三角形类似,但要更复杂一些. 一开始就仿照数字三角形写了方程:f[i][j]=min{f[i+1][j],f[i+1][j+1],f[i][j-1],f[i][j+1]},后来代码实现的时候发现 ...

最新文章

  1. 上面一个星星下面一个r_中国第一个王朝不是夏朝?山西出土一个破陶壶,上面俩字揭开谜题...
  2. python如何调用文件进行换位加密_python 换位密码算法的实例详解
  3. pytorch笔记:pytorch的乘法
  4. bai的字怎么写_教师节贺卡祝福语怎么写?教师节贺卡贺词祝福语精简20个字
  5. mysql 热切换_热备服务器中,切换master中切换SQL
  6. Maven(一):安装与环境配置、使用Maven搭建web项目
  7. web service design time table
  8. 如何下载、配置IDEA的Maven
  9. 钉钉机器人发送图片 python_python封装钉钉Webhook机器人消息发送逻辑
  10. IDEA主题设置与eclipse代码风格一致
  11. Google存储海量私人信息 隐私问题不堪设想
  12. sql 整改措施 注入_SQL注入入侵防范措施
  13. 班级的每日作业和任务目标
  14. python中的urllib模块中的方法
  15. java反射机制(4)动态代理初探
  16. Anaconda的安装与使用(Windows下)
  17. matlab 小波变换程序,matlab 小波变换
  18. 泰迪杯A题通讯产品销售和盈利能力分析一等奖作品
  19. QTcreater学习笔记
  20. 70个居家做饭小技巧

热门文章

  1. java GB28181 大华 海康摄像机国标对接源码源代码程序
  2. 2006年网络经典语录选粹
  3. 安卓开机logo和开机动画的几种实现方法
  4. java 读者写者_Java实现生产者消费者问题与读者写者问题详解
  5. 哪种女子才是男人最想要的?
  6. Postgres使用pg_resetwal命令修改wal日志文件大小的方法
  7. 直播星调整完毕,本土微电子公司利好
  8. python安装失败0x80070570_Python:“ModuleNotFoundError”,但模块已安装?
  9. b2b b2c o2o分布式电子商务平台源码 mybatis+spring cloud
  10. Jest+Enzyme测试React组件(上)