描述

上届的高三在这个暑假终于要到各个城市奔向他们的大学生活了。奇怪的是学校这次异
常阔气,说要用三台车子去载他们上学。上届高三的师兄们异常兴奋……可惜的是临行的时
候,学校终于露出它“狰狞”的面孔:
一、油费要学生自己给
二、去第k 个城市的条件是,前k-1 个城市都要被去过
三、同时只能有一部车子在动
师兄们也只能不断地锤胸口……
但是改乘飞机已经来不及了……
他们只好利用电脑组的优势去编一个最短路径以减少自己付的油费。

(P.S.没有人喜欢走回头路……)

格式

输入格式

第一行一个数N,代表一共要去多少个城市。

下面N-1 行,对于第 i 行,有 n-i 个数,表示第 i 个城市分别和第i+1, i+2, i+3, ……, N 的距离

输出格式

一行,最短的路程

样例1

样例输入1[复制]

5
1 1 1 2
33 33 33
33 33
33

样例输出1[复制]

36

限制

每个数据 1s

提示

N<=100

思路:dp

dp[i][j][k]表示第一辆车在第i个城市,第二辆车在第j个城市,第三辆车在第k个城市的最小路径;

初始化:f[1][1][1]=0,其余为Max

now表示当前到达的最远的城市(即now=max(i,j,k))

f[now+1][j][k]=min(f[now+1][j][k],f[i][j][k]+a[i][now+1])

f[i][now+1][k]=min(f[i][now+1][k],f[i][j][k]+a[j][now+1])

f[i][j][now+1]=min(f[i][j][now+1],f[i][j][k]+a[k][now+1])

在所有的now=n时,记录最小值。

 1 #include<stdio.h>
2 #include<algorithm>
3 #include<iostream>
4 #include<stdlib.h>
5 #include<string.h>
6 #include<math.h>
7 #include<queue>
8 using namespace std;
9 typedef long long LL;
10 int dp[105][105][105];
11 int nn[200][200];
12 const int N=1e9;
13 int main(void)
14 {
15 int i,j,k;
16 while(scanf("%d",&k)!=EOF)
17 {
18 int x,y;
19 for(i=1; i<k; i++)
20 {
21 for(j=i+1;j<=k;j++)
22 {
23 scanf("%d",&nn[i][j]);
24 }
25 }
26 for(i=0; i<105; i++)
27 {
28 for(j=0; j<105; j++)
29 {
30 for(x=0; x<105; x++)
31 {
32 dp[i][j][x]=N;
33 }
34 }
35 }
36 int ans=1e9;
37 dp[1][1][1]=0;
38 for(i=1; i<k; i++)
39 {
40 for(j=1; j<k; j++)
41 {
42 for(x=1; x<k; x++)
43 {
44 int xx=max(i,j);
45 xx=max(x,xx);
46 dp[xx+1][j][x]=min(dp[xx+1][j][x],dp[i][j][x]+nn[i][xx+1]);
47 dp[i][xx+1][x]=min(dp[i][xx+1][x],dp[i][j][x]+nn[j][xx+1]);
48 dp[i][j][xx+1]=min(dp[i][j][xx+1],dp[i][j][x]+nn[x][xx+1]);
49 if(xx+1==k)
50 {ans=min(dp[xx+1][j][x],ans);
51 ans=min(dp[i][j][xx+1],ans);
52 ans=min(ans,dp[i][xx+1][x]);
53 }
54 }
55 }
56 }
57 printf("%d\n",ans);
58 }
59 return 0;
60 }

P1547逆转,然后再见的更多相关文章

  1. 再见Windows C++

    我3年多以前写过一个小工具,是用来检测Windows操作系统的版本及其所安装的.NET Framework版本的,我用它来排查由于缺乏运行环境支持所导致的程序无法运行的问题.这个工具是用Visual ...

  2. 再见,OI

    你好,NOIP 2015年9月1日 正式成为了福建省莆田一中的一名高一成员 后来学校搞了选修 大家都很激动 因为自己的兴趣和特长能够得到发挥了(或者说能逃课或者看好多电影) 发现选修提供的选项中有好几 ...

  3. C#、不说再见

    公司技术转型,.NET To Java,以后逐渐踏入Java阵营. 再见了 Java嫌弃的老同学,再见了 来不及说出的谢谢 再见了 不会再有的.NET,再见了 我留给你毕业册的最后一页 我相信 我们还 ...

  4. 再见OI

    NOIP2016终章 自己弱还脑残加手残 再见OI 你好高考 你好明天 "没有泪水的日子会轻松很多 但我的心还是会痛" ------------------------------ ...

  5. 湖人VS爵士!!科比4月14日最后一战,本赛季最高得分!狂得60分!!完美大逆转!!!

    莫愁前路无知己,天下谁人不识君.科比,愿你如迈克尔·乔丹,仍然活跃在篮球界.退役不是结束,而是另一段人生的开始. 北京时间2016年4月14日,湖人101-96击败爵士,科比-布莱恩特告别战,20年职 ...

  6. Android Fragment应用实战,使用碎片向ActivityGroup说再见

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/13171191 现在Fragment的应用真的是越来越广泛了,之前Android在3 ...

  7. LeetCode 笔记系列六 Reverse Nodes in k-Group [学习如何逆转一个单链表]

    题目:Given a linked list, reverse the nodes of a linked list k at a time and return its modified list. ...

  8. 【BZOJ-4269】再见Xor 高斯消元 + 线性基

    4269: 再见Xor Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 131  Solved: 81[Submit][Status][Discuss] ...

  9. 逆转序列的递归/尾递归(+destructuring assignment)实现(JavaScript + ES6)

    这里是用 JavaScript 做的逆转序列(数组/字符串)的递归/尾递归实现.另外还尝鲜用了一下 ES6 的destructuring assignment + spread operator 做了 ...

随机推荐

  1. 生产调优1 HDFS-核心参数

    目录 1 HFDS核心参数 1.1 NameNode 内存生产配置 问题描述 hadoop-env.sh中配置 1.2 NameNode 心跳并发配置 修改hdfs-site.xml配置 1.3 开启 ...

  2. 扩展kmp 学习笔记

    学习了一下这个较为冷门的知识,由于从日报开始看起,还是比较绕的-- 首先定义 \(Z\) 函数表示后缀 \(i\) 与整个串的 \(lcp\) 长度 一个比较好的理解于实现方式是类似于 \(manac ...

  3. Centos7部署RabbitMQ的镜像队列集群

    一.背景 在上一章节中,我们学会了如何搭建一个单节点的RabbitMQ服务器,但是单节点的RabbitMQ不可靠,如果单节点挂掉,则会导致消息队列不可用.此处我们搭建一个3个节点的RabbitMQ集群 ...

  4. accent, accept

    accent A colon (:) is used to represent a long vowel, e.g. sheet /ʃiːt/ and shit /ʃit/. The word bed ...

  5. flink---实时项目--day02-----1. 解析参数工具类 2. Flink工具类封装 3. 日志采集架构图 4. 测流输出 5. 将kafka中数据写入HDFS 6 KafkaProducer的使用 7 练习

    1. 解析参数工具类(ParameterTool) 该类提供了从不同数据源读取和解析程序参数的简单实用方法,其解析args时,只能支持单只参数. 用来解析main方法传入参数的工具类 public c ...

  6. 一道题目学ES6 API,合并对象id相同的两个数组对象

    var arr2=[{id:1,name:'23'}] var arr1=[{id:1,car:'car2'}] const combined = arr2.reduce((acc, cur) =&g ...

  7. 容器之分类与各种测试(三)——slist的用法

    slist和forward_list的不同之处在于其所在的库 使用slist需要包含 #include<ext\list> 而使用forward_list则需要包含 #include< ...

  8. Linux:ps -ef命令

    ps命令将某个进程显示出来 grep命令是查找 中间的|是管道命令 是指ps命令与grep同时执行 PS是LINUX下最常用的也是非常强大的进程查看命令 检查java 进程是否存在:ps -ef |g ...

  9. 【Linux】【Services】【Project】Haproxy Keepalived Postfix实现邮件网关Cluster

    1. 简介: 1.1. 背景:公司使用exchange服务器作为邮件服务器,但是使用Postfix作为邮件网关实现病毒检测,内容过滤,反垃圾邮件等功能.原来的架构非常简单,只有两台机器,一个负责进公司 ...

  10. SpringMvc分析

    1.用户单击某个请求路径,发起一个request请求,此请求会被前端控制器(DispatcherServlet)处理 2.前端控制器(DispatcherServlet)请求处理器映射器(Handle ...