P1359 租用游艇

news2024/9/21 14:38:34

# 租用游艇

## 题目描述

长江游艇俱乐部在长江上设置了 $n$ 个游艇出租站 $1,2,\cdots,n$。游客可在这些游艇出租站租用游艇,并在下游的任何一个游艇出租站归还游艇。游艇出租站 $i$ 到游艇出租站 $j$ 之间的租金为 $r(i,j)$($1\le i\lt j\le n$)。试设计一个算法,计算出从游艇出租站 $1$ 到游艇出租站 $n$ 所需的最少租金。

## 输入格式

第一行中有一个正整数 $n$,表示有 $n$ 个游艇出租站。接下来的 $n-1$ 行是一个半矩阵 $r(i,j)$($1\le i<j\le n$)。

## 输出格式

输出计算出的从游艇出租站 $1$ 到游艇出租站 $n$ 所需的最少租金。

## 样例 #1

### 样例输入 #1

```
3
5 15
7
```

### 样例输出 #1

```
12
```

## 提示

$n\le 200$,保证计算过程中任何时刻数值都不超过 $10^6$。

1.这道题看起来像是最短路径的问题,我觉得这道题考的更多的是动态规划。

2.这个题目意思说的比较笼统,于是我去看了题解,才明白题目是这样的意思:

        1号可以到达的下一个中转站自然只有2号和3号,租金如下

        每个中转站只能到除它外的下个中转点。(这么说的话我觉得用floyd好像也是可以的)

 

 3.我们拿dp数组来记录,dp[  i  ]代表从1号点到  i  点的最少租金,我们每次都保证该点是最小值,那么除了1号点,其他的点都需要赋值为一个无穷大的数字(这里就拿2^31-1即可)。

4.在我们遍历每一点,它有俩种选择 

        第一个是它本身的值

        第二个是当前中转点 i 到  j  的租金值+dp[ i ](这个代表的是1号点到  i  点取得的最少租金值)

于是代码实现即是:

外循坏代表从 中转点 i 开始  ,j  代表到达的中转点

最后输出dp[  n  ]即可。

C代码如下:

#include<stdio.h>
#define N 210
#define INF 2147483647
int a[N][N],n,dp[N];
int min(int a,int b)
{
	if(a>b) return b;
	return a;
}
int main()
{
	int i,j;
	scanf("%d",&n);
	for(i=1;i<n;i++)
	{
		dp[i+1]=INF;
		for(j=i+1;j<=n;j++)
			scanf("%d",&a[i][j]);
	}
	
	for(i=1;i<=n;i++)
	{
		for(j=i+1;j<=n;j++)
		{
			dp[j]=min(dp[j],dp[i]+a[i][j]);
		}
	}
	
	printf("%d ",dp[n]);
	return 0;
}

 C++代码如下:

#include<iostream>
#include<bits/stdc++.h>

using namespace std;

const int N=210;
const int INF=2147483647;

int a[N][N],n,dp[N];
int min(int a,int b)
{
	if(a>b) return b;
	return a;
}
int main()
{
	int i,j;
	cin >> n ;
	for(i=1;i<n;i++)
	{
		dp[i+1]=INF;
		for(j=i+1;j<=n;j++)
			cin >> a[i][j] ;
	}
	
	for(i=1;i<=n;i++)
	{
		for(j=i+1;j<=n;j++)
		{
			dp[j]=min(dp[j],dp[i]+a[i][j]);
		}
	}
	cout << dp[n] << endl;
	return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/188798.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MPLS实验(1.31)

目标&#xff1a; 一、首先为公网的每个路由器配置对应的ip和环回并且用OSPF进行动态选路 r2&#xff1a; [r2]int gi 0/0/2 [r2-GigabitEthernet0/0/2]ip add 23.1.1.1 24 [r2-GigabitEthernet0/0/2]int lo0 [r2-LoopBack0]ip add 2.2.2.2 24 r3&#xff1a; [r3]int gi 0…

Oracle的学习心得和知识总结(十)|Oracle数据库PL/SQL语言循环控制语句之LOOP语句技术详解

目录结构 注&#xff1a;提前言明 本文借鉴了以下博主、书籍或网站的内容&#xff0c;其列表如下&#xff1a; 1、参考书籍&#xff1a;《Oracle Database SQL Language Reference》 2、参考书籍&#xff1a;《PostgreSQL中文手册》 3、EDB Postgres Advanced Server User Guid…

yolov5篇---yolov5训练pt模型并转换为rknn模型,部署在RK3588开发板上——从训练到部署全过程

yolov5训练pt模型并转换为rknn模型&#xff0c;部署在RK3588开发板上——从训练到部署全过程一、任务介绍二、实验过程2.1 使用正确版本的yolov5进行训练(平台&#xff1a;x86机器ubuntu22.04系统)2.2 best.pt转换为best.onnx(平台&#xff1a;x86机器ubuntu22.04系统)2.3 best…

2023年西安Java培训机构十强榜单出炉,快来看看哪家榜上有名~

关于“西安Java培训机构哪家好&#xff1f;”“如何选择适合自己的Java培训机构&#xff1f;”这类问题常常出现网络上&#xff0c;其实关于这类问题没有统一的答案&#xff0c;一千个人有一千个哈姆雷特&#xff0c;每个人关注的重点不一样&#xff0c;需求更是不同&#xff0…

投入3.6亿美元!加拿大启动国家量子战略

&#xff08;图片来源&#xff1a;网络&#xff09;量子科学和技术处于研究和创新的前沿&#xff0c;具有巨大的商业化潜力和突破性进展&#xff0c;包括更有效的药物设计、更好的气候预测、改进的导航系统和清洁技术的创新。加拿大政府支持这一新兴行业的持续发展&#xff0c;…

用队列实现栈+用栈实现队列+循环队列(oj题)

1.题目: 力扣https://leetcode.cn/problems/implement-stack-using-queues/ 思路: 核心思路: 1、入数据&#xff0c;往不为空的队列入、保持另一个队列为空 2、出数据的时候&#xff0c;依次出队头的数据&#xff0c;转移另一个队列保存。只剩最后一个事&#xff0c;Pop掉 typ…

【数据结构之排序系列】校招热门考点:快速排序

目录前言一、hoare版本1. 单排2. 单排的代码实现3. 综合排序的实现4. 测试二、挖坑法1. 单排2. 单排的代码实现3. 综合排序的实现4. 测试三、前后指针法1. 单排2. 单排的代码实现3. 综合排序的实现4. 测试四、快排的时间复杂度五、快排的优化1. 三数取中2. 小区间优化六、快排的…

[Vulnhub] DC-9

前言&#xff1a; 打了这么长时间&#xff0c;终于&#xff0c;DC系列1-9 靶机已经干完了。通过这九个靶机的历练&#xff0c;都是单靶机 感觉远远不足&#xff0c;但也不是没有收获&#xff0c;学到了一些工具和提权的简单利用&#xff0c;大概知道了什么是反弹shell&#xf…

UE实现人物角色沿样条线移动效果

文章目录 1.实现目标2.实现过程2.1 实现思路2.2 具体过程3.参考资料1.实现目标 实现人物角色Character按样条线Spline自动移动效果,GIF动图如下。 2.实现过程 2.1 实现思路 (1)获取某一时刻样条线上点的位置,直接使用GetLocationAtTime函数即可。 (2)实时更新Characte…

Python Windows Apache部署Django项目运行环境(含Mysql)以及解决过程中遇到的问题

上一篇请移步Python Windows Apache部署Django项目运行环境_水w的博客-CSDN博客 本文是在上一篇的基础上&#xff0c; 进行后续工作。 目录 一、配置数据库&#xff08;MySQL&#xff09; 1、Mysql配置 2、安装MySQL管理工具SQLyog 【解决过程中遇到的问题】 解决报错&am…

java泛型2

真正搞定泛型&#xff01;&#xff01;&#xff01;------- >类型形参 所谓泛型&#xff0c;就是允许在定义类、接口、方法时使用类型形参&#xff0c;这个类型形参&#xff08;或叫泛型&#xff09;将在声明变量、创建对象、调用方法时动态地指定&#xff08;即传入实际的类…

【看表情包学Linux】进程的概念 | 进程控制块 PCB | 父进程与子进程 | 进程 ID | task_struct

&#x1f923; 爆笑教程 &#x1f449; 《看表情包学Linux》&#x1f448; 猛戳订阅 &#x1f525; &#x1f4ad; 写在前面&#xff1a;本章我们将带着大家深入理解 "进程" 的概念&#xff0c;"进程" 这个概念其实使我们一直在接触的东西&#xff0c;只不…

一文深入搞懂 mmap 涉及的所有内容

内存映射&#xff0c;简而言之就是将内核空间的一段内存区域映射到用户空间。映射成功后&#xff0c;用户对这段内存区域的修改可以直接反映到内核空间&#xff0c;相反&#xff0c;内核空间对这段区域的修改也直接反映用户空间。那么对于内核空间与用户空间两者之间需要大量数…

一文讲清同步异步,消息队列,宏任务 微任务...

单线程多线程 什么是线程进程? 进程&#xff1a;是cpu分配资源的最小单位&#xff1b;&#xff08;是能拥有资源和独立运行的最小单位&#xff09; 线程&#xff1a; 是cpu调度的最小单位&#xff1b;&#xff08;线程是建立在进程的基础上的一次程序运行单位&#xff0c;一…

Kafka第一章:环境搭建

系列文章目录 Kafka第一章&#xff1a;环境搭建 文章目录系列文章目录前言一、环境安装1.前置环境2.软件下载3.上传集群并解压4.编写配置文件5.分发配置文件6.修改参数7.环境变量8.启动服务9.编写启动脚本二、主题命令行操作1.查看topic2.创建 first topic3.查看主题的详情4.修…

录制屏幕为什么没有声音?教您录制声画同步的视频

有时我们只顾着录制电脑的画面&#xff0c;而忽视了录制视频的声音&#xff0c;导致录制的视频文件只有画面没有声音。那您知道录制的视频为什么没有声音吗&#xff1f;怎样才能录制声画同步的录屏文件呢&#xff1f;想要录制带声画同步的视频&#xff0c;首先您得拥有一款支持…

[kubernetes]-k8s通过psp限制nvidia-plugin插件的使用

导语&#xff1a; k8s通过psp限制nvidia-plugin插件的使用。刚开始接触psp 记录一下 后续投入生产测试了再完善。 通过apiserver开启psp 静态pod会自动更新 # PSP(Pod Security Policy) 在默认情况下并不会开启。通过将PodSecurityPolicy关键词添加到 --enbale-admission-plu…

【Cocos新手入门】使用 cocos creator 创建多个场景,并通过代码和事件绑定进行切换场景的方法

本篇文章主要讲解使用 cocos creator 创建多个场景&#xff0c;并通过代码和事件绑定进行切换 作者&#xff1a;任聪聪 日期&#xff1a;2023年1月31日 cocos 引擎版本 2.4.3 场景的创建 步骤一、右击资源管理器下的assets目录&#xff0c;点击新建&#xff0c;献出案件一个sc…

NX二开ufun函数UF_MODL_create_section_surface(样条曲线构建截面特征)

本节主要介绍通过样条曲线及截面OPEN API结构体构建截面特征&#xff0c;函数名 UF_MODL_create_section_surface&#xff0c;效果图如下&#xff1a; 1、函数结构 int UF_MODL_create_section_surface &#xff08; UF_MODL_secsrf_data_p_t section_surface_data&#xff0c…

vue2 数据响应式Object.defineProperty

我们通常可以对进行输入框进行数据的监听&#xff0c;只需要用到了input 事件或 change事件&#xff0c;就可以实时监听到数据的改变&#xff0c;但是如果只是一个单独的数据呢&#xff1f;怎么去做监听&#xff0c;watch吗&#xff1f;&#xff1f;哈哈。 所以 vue响应式就用…