试题 算法训练 逗志芃的暴走
创始人
2025-05-30 21:32:10

问题描述

  逗志芃是有妹子的现充,但是有时候妹子就是烦恼。因为逗志芃太逗了,所以这段时间妹子对逗志芃发动了技能无理取闹,妹子要去玩很多的景点。由于逗志芃之前抽机花费了太多的时间,不久以后又要微积分考试了,所以现在被妹子搞成暴走状态了。但是妹子永远是上帝,所以逗志芃只能带妹子出去玩,不过为了节约时间,他希望找到一条花费时间最少的一次性游览线路。

输入格式

  第一行1个数n,表示逗志芃所在的城市有多少个景点,接下来是一个n*n的矩阵。a(i,j)表示i号景点到j号景点的路上花费的时间是多少。
  接下来是一个数m,表示逗志芃妹子要去去的景点数目。由于妹子在无理取闹,所以可能会有重复的景点,不过只要去一次就可以了。接下来是m个数,就是妹子要去的景点编号。

输出格式

  一个数,最少的花费时间。

样例输入

3
0 1 2
1 0 3
2 3 0
3
2 3 1

样例输出

3

数据规模和约定

  0

#include
#include
using namespace std;int n;
int map[31][31] = {0};
int visit[31] = {0};
int aim[31] = {0};
int realm = 0;
int ans = 99999;void mySort() {for (int k = 1; k <= n; k ++) {for (int i = 1; i <= n; i ++) {for (int j = 1; j <= n;  j ++) {map[i][j] = min(map[i][j], map[i][k] + map[k][j]);}}}
}void dfs(int start, int num, int Tans) {if (num == realm) {ans = min(ans, Tans);return;}for (int i = 1; i <= n; i ++) {if (aim[i] == 1 && visit[i] == 0 && Tans + map[start][i] <= ans) {visit[i] = 1;dfs(i, num + 1, Tans + map[start][i]);visit[i] = 0;}}
}int main() {cin >> n;for (int i = 1; i <= n; i ++) {for (int j = 1; j <= n; j ++) {cin >> map[i][j];}}mySort();int m;cin >> m;for (int i = 0; i < m; i ++) {int temp;cin >> temp;if (aim[temp] == 0) {realm++;aim[temp] = 1;}}for (int i = 1; i <= n; i ++) {if (aim[i] != 0) {memset(visit, 0, sizeof(visit));visit[i] = 1;dfs(i, 1, 0);}}cout << ans;return 0;
}

总结:

mySort是用来将路径重新排一下

让map[i][j]表示从i到j所用时间最少,后面用来找最小路径

aim数组表示要去的景点

visit数组表示去过的景点

realm用来找真正要去的景点的个数

然后在dfs中遍历所有景点,满足

1.是要去的景点

2.还没去过的景点(因为每个景点只需要去一次)

3.当前已经花了的时间+走那个条路线要花的时间要小于当前的最小时间

之后就继续递归遍历找最小花费时间

相关内容

热门资讯

配置管理的四个要点 配置管理是基础,是关键。做工具平台或系统,一定要重视基础的建设。一定要做...
机构密集调研!长三角区域银行为... 地方性上市银行大获青睐。 5月29日,《国际金融报》记者梳理Wind数据发现,已有超千家机构对24家...
Android文件目录 前言 Android文件目录可以分为内部存储和外部存储,其中外部存储又可以分为私有目录...
用友NC数据库迁移服务解决方案 NC数据库迁移工具操作说明          NC数据库迁移工具的功能:不同数据库之间...
Harbor仓库开启SSL 目录一、部署docker二、安装docker-compose三、安装harbor下载离线安装包&#x...
HTML、CSS学习笔记7(媒... 目录 一、媒体查询 1.max-min-width 2.书写顺序  3.媒体类型 4.媒体查询——l...
Word加载项/插件管理 Word加载项/插件管理前言准备:开启加载项功能区加载项Word加载项COM加载项 前...
Spring产生数据源对象(c... 目录一、c3p01. 添加依赖2. 在resources中创建applicationContext....
ArcScene制作三维地图-... ArcScene制作三维地图-三维模型发布时间:2018-01-17 版权࿱...
【C++】面试101,用两个栈... 目录 1. 用两个栈实现队列  2.包含min函数的栈 3.有效括号序列  4.滑动窗口的最大值 5...
一文说明白,TypeScrip... ● 通过前两章的学习, 我们基本上对于 TS 已经入门了 ● 但是我们会发现, 我们好像对于类型限制...
《JavaEE初阶》计算机网络... 《JavaEE初阶》计算机网络之网络原理(传输层) 前言: 本章主要将介绍传输层的UDP与TCP协议...
菲林格尔筹划控制权变更事项 6... 菲林格尔(603226)筹划易主。 5月30日晚间菲林格尔公告,公司于5月30日收到公司实际控制人丁...
[实战]上传文件的实战问题 [实战]上传文件的实战问题文件上传前的编辑问题上传文件的时机选择=>编辑=>上传 文...
学习笔记:基于SpringBo... 一、发送邮件 发送邮件主要使用JavaMailSender类,使用send方法&#x...
ENet学习笔记 ENet:A deep Neural Network Architecture for Real-T...
Obsidian插件推荐和页面... 1. 插件推荐 custom attachment location 可自定义附件图片的存放位置&#...
7个Python中的隐藏小技巧... Python 是每个程序员都喜欢的语言,因为它易于编码和易于阅读的语法。但是ÿ...
Kotlin实现Service... Service的使用1异步通信方式2Service的启动和停止3希望Activity和Service...
python绘制三维图 一、初始化 假设已经安装了matplotlib工具包。 利用matplotlib.figure.Fi...
每周股票复盘:恺英网络(002... 截至2025年5月30日收盘,恺英网络(002517)报收于15.93元,较上周的15.77元上涨1...
HashTabld底层源码解读 Java源码系列:下方连接 http://t.csdn.cn/Nwzed 文章目录...
常熟银行新注册《常熟农商银行P... 证券之星消息,近日常熟银行(601128)新注册了《常熟农商银行PDF转Word系统V1.0.0.0...
血洗币圈!比特币崩盘,跌至8万... 端午安康,祝大家在牛市中稳健操作,迈向财富自由!别忘了点赞关注,咱们一起把握市场机会! 比特币最近...
k8s部署prometheus k8s部署prometheus 版本说明: k8s:1.24.4 pro...
OpenAI似乎步子迈太大了 ... 出品|虎嗅科技组作者|孙晓晨编辑|苗正卿头图|视觉中国当地时间5月29日,据外媒报道,特拉华州总检察...
代码随想录-58-654.最大... 目录前言题目1.构造二叉树-递归(区间,左闭右开)2. 本...
Git Actions自动发布... Git Actions自动发布部署,非最完善但足够完善和上手的一篇 文章最后附带完整...
【Java (一:12-4 D... DTD&schema 笔记记录一、DTD&schema1. xml约束分类DTD&schema1.1...
#ubuntu# #perf#... 关于 perf相关内容,抓取命令较多,当需要大量数据时每次输入命令会比较...