当前位置: 首页 > news >正文

【PAT甲级题解记录】1150 Travelling Salesman Problem (25 分)

【PAT甲级题解记录】1150 Travelling Salesman Problem (25 分)

前言

Problem:1150 Travelling Salesman Problem (25 分)

Tags:模拟 图的遍历 旅行商问题

Difficulty:剧情模式 想流点汗 想流点血 死而无憾

Address:1150 Travelling Salesman Problem (25 分)

问题描述

给定一个图和一些路径,求这些路径是否为旅行商环路、简单旅行商环路或者非旅行商环路。

  • TS simple cycle if it is a simple cycle that visits every city;
  • TS cycle if it is a cycle that visits every city, but not a simple cycle;
  • Not a TS cycle if it is NOT a cycle that visits every city.

解题思路

只要会存储图,模拟一下就可以了。

唯一的难点是三种路径类型的判断上并没有那么轻松,甚至读题也有点麻烦,还是有点烦的,不过样例能过基本上就没问题了。

建议在遍历路径判断前像这样打个草稿,这种题思路一定要严谨清晰。

// Not a TS cycle if it is NOT a cycle that visits every city.
if(不连通 or 首尾不通 or 不包含全部) // 其中不连通输出NA// TS cycle if it is a cycle that visits every city, but not a simple cycle;
else if(有重复): // TS simple cycle if it is a simple cycle that visits every city;
else: 

参考代码

#include<iostream>
#include<cstdio>
#include<vector>
#include<set>using namespace std;
int N;  // the number of cities
int M;  // the number of edges in an undirected graph
vector<vector<int>> edges;  // 邻接矩阵
void init() {cin >> N >> M;// 初始化 edges (-1)edges.resize(N + 1);for (int i = 1; i <= N; ++i) {edges[i].resize(N + 1, -1);}// 输入 edgesfor (int i = 0; i < M; ++i) {int c1, c2, d;cin >> c1 >> c2 >> d;edges[c1][c2] = d;edges[c2][c1] = d;}}void solve() {int K;cin >> K;int min_dist = 0x3f3f3f3f;int min_index = -1;for (int k = 1; k <= K; ++k) {int n;cin >> n;vector<int> path(n);for (int i = 0; i < n; i++) {cin >> path[i];}// checkint dist = 0;bool is_conn = true; // 判断路径通不通bool is_all = true; // 判断是否 visit every citybool is_simple = true; // 判断重复(是否简单环)set<int> visited; // 访问计数,用来判断重复visited.insert(path[0]);for (int i = 1; i < n; ++i) {if (edges[path[i - 1]][path[i]] == -1) {is_conn = false;}if (i != n - 1 && visited.count(path[i])) {  // 注意末尾不判断,末尾是用来构成环的is_simple = false;}dist += edges[path[i - 1]][path[i]];visited.insert(path[i]);}if (visited.size() != N) {is_all = false;}if (!is_conn) {printf("Path %d: NA (Not a TS cycle)\n", k);} else if (!is_all || path[0] != path[n - 1]) {printf("Path %d: %d (Not a TS cycle)\n", k, dist);} else if (!is_simple) {printf("Path %d: %d (TS cycle)\n", k, dist);if (dist < min_dist) {min_dist = dist;min_index = k;}} else {printf("Path %d: %d (TS simple cycle)\n", k, dist);if (dist < min_dist) {min_dist = dist;min_index = k;}}}printf("Shortest Dist(%d) = %d\n", min_index, min_dist);
}void solution_1150() {init();solve();
}
int main() {solution_1150();return 0;
}

相关文章:

【PAT甲级题解记录】1150 Travelling Salesman Problem (25 分)

【PAT甲级题解记录】1150 Travelling Salesman Problem (25 分) 前言 Problem&#xff1a;1150 Travelling Salesman Problem (25 分) Tags&#xff1a;模拟 图的遍历 旅行商问题 Difficulty&#xff1a;剧情模式 想流点汗 想流点血 死而无憾 Address&#xff1a;1150 Travell…...

vue生命周期

vue生命周期是什么&#xff1f;Vue生命周期是指vue实例对象从创建之初到销毁的过程&#xff0c;vue所有功能的实现都是围绕其生命周期进行的&#xff0c;在生命周期的不同阶段调用对应的钩子函数可以实现组件数据管理和DOM渲染两大重要功能。我们来看一下官网给的vue生命周期的…...

排查解决Java进程占用内存过高

排查解决Java进程占用内存过高1 在项目部署运行之前1 检查JVM参数设置2 检查代码逻辑3 使用内存分析工具4 检查线程5 调整应用程序的设计7 调整硬件资源2 在项目部署运行之后1 在项目部署运行之前 1 检查JVM参数设置 检查JVM的启动参数设置&#xff0c;包括-Xmx和-Xms参数&am…...

一个基于 LKM 的 Linux 内核级 rootkit 的实现

博客已迁移至&#xff1a;https://gls.show/ GitHub链接 演示Slides overview rootkit是一种恶意软件&#xff0c;攻击者可以在获得 root 或管理员权限后安装它&#xff0c;从而隐藏入侵并保持root权限访问。rootkit可以是用户级的&#xff0c;也可以是内核级的。关于rootk…...

CAN工具 - ValueCAN - 基础介绍(续)

VSpy3&#xff08;Vehicle Spy 3的简写&#xff09;&#xff0c;作为一个常用的车载总线仿真工具&#xff0c;在车载网络领域也是有非常大的市场&#xff0c;前面也简单介绍过一些简单的功能&#xff0c;今天就再次介绍一些。什么是VSpy3&#xff1f;VSpy3是美国英特佩斯公司下…...

一个Laravel+vue免费开源的基于RABC控制的博客系统

项目介绍 CCENOTE 是一个使用 Vue3 Laravel8 开发的前后端分离的基于RABC权限控制管理的内容管理系统&#xff0c;由于作者本人比较喜欢写作的原因&#xff0c;因此开发了这个项目&#xff0c;后端使用的PHP的Laravel框架&#xff0c;并且整理了数据层与业务层&#xff0c;相…...

从 B 站出发,用 Chrome devTools performance 分析页面如何渲染

页面是如何渲染的&#xff1f;通常会得到“解析 HTML、css 合成 Render Tree&#xff0c;就可以渲染了”的回答。但是具体都做了些什么&#xff0c;却很少有人细说&#xff0c;我们今天就从 Chrome 的性能工具开始&#xff0c;具体看看一个页面是如何进行渲染的&#xff0c;以及…...

Java异常Throwable的分类

1. Exception&#xff1a;程序本身可以捕获并且可以处理的异常 编译时异常&#xff1a;编译期就会检查的异常&#xff0c;若调用的方法中throw了此类异常&#xff0c;则必须进行显式处理处理&#xff08;用try…catch捕获或者throws向上抛出&#xff09;&#xff0c;否则无法通…...

【mybatis的#和$使用和区别】

MyBatis是一种基于Java的持久层框架&#xff0c;用于将数据库操作和Java对象之间的映射进行处理。在MyBatis中&#xff0c;#和 $ 符号是用于SQL语句中的占位符。 在SQL语句中&#xff0c;#和 $ 符号都表示占位符&#xff0c;但它们的使用方式略有不同&#xff1a; # 符号 #符…...

感知趋势,洞察发展:2023(第十届)趋势与预测大会成功举办

2023年2月23日&#xff0c;运联年会&#xff1a;2023&#xff08;第十届&#xff09;趋势与预测大会在深圳机场凯悦酒店成功闭幕。自2014年开始&#xff0c;“运联年会&#xff1a;趋势与预测”已经连续举办九届。这场大会&#xff0c;既是一次行业性的“年终总结”&#xff0c…...

Spring-Aop核心技术

前言spring一直以来都是我们Java开发中最核心的一个技术&#xff0c;其中又以ioc和aop为主要技术&#xff0c;本篇文章主要讲一下aop的核心技术&#xff0c;也就是ProxyFactory技术的使用&#xff0c;而基本的jdk动态代理和cglib代理技术并不涉及&#xff0c;如有需要&#xff…...

webpack常用优化原理剖析

webpack常用优化原理剖析 按需加载代码配置原理CDN加速-externals代码配置GZIP压缩代码配置原理Tree Shaking代码配置原理按需加载 把不同路由对应的组件分割成不同的代码块,然后当路由被访问的时候才加载对应组件. 代码配置 //定义了一个异步函数,由于函数不调用不执行,所…...

【现在努力还不晚】--MySQL数据库的数据模型

目录 1、关系型数据库&#xff08;RDBMS&#xff09; 特点 2、数据模型 在学习MySQL之前要了解一下数据库的数据模型&#xff0c;我们就知道在MySQL当中&#xff0c;数据是如何存储的&#xff0c;我们了解一下概念&#xff01; 1、关系型数据库&#xff08;RDBMS&#xff0…...

二手商品交易网站

技术&#xff1a;Java、JSP等摘要&#xff1a;随着科学技术和信息通讯的飞速发展&#xff0c;Internet极大地丰富和改变着我们生活的各个行业。随着Internet的普及应用&#xff0c;人们可以跨越时间和空间的限制&#xff0c;足不出户便能通过网络完成信息交流&#xff0c;而完成…...

第三阶段04-同步请求和异步请求,get/post,Josn,pojo,Session/Cookie,过滤器Filter

文章目录同步请求和异步请求客户端如何发出异步请求自定义模板代码Get和Post请求异步版本的注册和登录商品管理系统(异步版本)商品列表步骤:前后端分离为什么需要前后端分离?为什么以后不再使用同步请求?JSONPOJO会话对象Session如何记住登录状态后端的MVC会话管理Cookie通过…...

Spark学习:spark相似算子解析

spark算子 一、Map、Flatmap和MapPartition二、repartition和coalesce三、reduceByKey和groupByKey四、collect、take和first一、Map、Flatmap和MapPartition 算子作用map接收一个高阶函数f,对每个算子进行f操作flatmap接收一个高阶函数f,对每个元素进行f操作,形成一个大的集合…...

MySQL操作数据表-----------创建数据表(一)

在MySQL中创建数据库完成后&#xff0c;需要使用USE 数据库名的形式指定进行操作的数据库&#xff0c;然后再去执行创建数据表的SQL语句&#xff0c;也可以直接使用数据库名.数据表名的形式创建数据表。 1.创建空数据表 语法格式&#xff1a;CREATE TABLE [IF EXISTS] 表名 &…...

Java “框架 = 注解 + 反射 + 设计模式” 之 注解详解

Java ”框架 注解 反射 设计模式“ 之 注解详解 每博一文案 刹那间我真想令时光停住&#xff0c;好让我回顾自己&#xff0c;回顾失去的年华&#xff0c;缅怀哪个穿一身短小的连衣裙 和瘦窄的短衫的小女孩。让我追悔少年时代&#xff0c;我心灵的愚钝无知&#xff0c;它轻易…...

特斯拉4D雷达方案首次曝光!高阶智驾市场比拼安全冗余

随着L2级智能驾驶进入普及阶段&#xff0c;L3/L4级赛道正在成为各家车企的下一个竞争焦点。背后的最大难题&#xff0c;就是如何在成本可控的前提下&#xff0c;保证足够的安全。 高工智能汽车研究院监测数据显示&#xff0c;2022年度中国市场&#xff08;不含进出口&#xff…...

Echarts 每个柱子一种渐变色的象形柱状图

第023个点击查看专栏目录本示例是解决每个柱状图的每一个柱子都呈现一种渐变色&#xff0c;每个柱子的颜色都不同。这里同时采用了象形的柱状图效果。 文章目录示例效果示例源代码&#xff08;共125行&#xff09;相关资料参考专栏介绍示例效果 示例源代码&#xff08;共125行&…...

Ostrakon-VL-8B模型剪枝与量化入门:降低部署资源消耗

Ostrakon-VL-8B模型剪枝与量化入门&#xff1a;降低部署资源消耗 想让大模型在普通电脑上跑起来&#xff1f;这听起来像是个遥不可及的梦想&#xff0c;尤其是对于Ostrakon-VL-8B这种参数规模不小的视觉语言模型。它功能强大&#xff0c;但随之而来的就是对GPU显存和算力的高要…...

ArcMap地图数字化实战:从加载地形图到保存成果的完整流程(附常见问题解决)

ArcMap地图数字化实战&#xff1a;从加载地形图到保存成果的完整流程&#xff08;附常见问题解决&#xff09; 在GIS领域&#xff0c;地图数字化是将纸质地图或图像转换为计算机可识别和处理的数字格式的基础工作。这项技能不仅是GIS专业学生的必修课&#xff0c;也是城市规划、…...

电力电子器件全解析:从二极管到IGBT,手把手教你掌握王兆安教材核心考点

电力电子器件深度解析&#xff1a;从基础原理到高效复习策略 电力电子技术作为现代自动化与能源转换的核心学科&#xff0c;其器件特性与应用的掌握程度直接影响着工程师解决实际问题的能力。对于华南理工大学自动化专业的学生而言&#xff0c;王兆安教授的《电力电子技术》教材…...

老王-你驾驭不住的东西才会显相

你驾驭不住的东西&#xff0c;才会显相 ——展现即风险&#xff0c;驾驭方为道“大象无形。” 真正强大的人&#xff0c;从不轻易显相—— 因为显&#xff0c;即招&#xff1b;露&#xff0c;即险。⚠️ 你想展现什么&#xff0c;就必须能驾驭什么。&#x1f525; 六大展现&…...

OpenClaw多模型切换实战:百川2-13B量化版与Qwen3-32B对比测试

OpenClaw多模型切换实战&#xff1a;百川2-13B量化版与Qwen3-32B对比测试 1. 为什么需要多模型切换&#xff1f; 去年夏天&#xff0c;当我第一次尝试用OpenClaw自动化处理日常工作时&#xff0c;发现一个有趣的现象&#xff1a;80%的简单任务&#xff08;如文件重命名、邮件…...

别再拷贝sxs文件夹了!Win10教育版1903安装.NET 3.5最简方案(实测有效)

彻底解决Win10安装.NET 3.5报错0x800F081F的高效方案 每次在Win10上安装.NET Framework 3.5时遇到0x800F081F错误&#xff0c;都让人抓狂。网上那些让你拷贝sxs文件夹的教程&#xff0c;99%都在误导人。作为一位经历过无数次失败的老手&#xff0c;我要分享的是经过上百次验证的…...

OpenClaw+GLM-4.7-Flash:智能读书笔记生成

OpenClawGLM-4.7-Flash&#xff1a;智能读书笔记生成 1. 为什么需要自动化读书笔记 作为一名技术从业者&#xff0c;我常年保持每周至少阅读两本专业书籍的习惯。但最困扰我的不是阅读本身&#xff0c;而是如何高效整理书中精华内容。过去我尝试过各种笔记工具&#xff0c;从…...

企业级vGPU选型指南:从GRID vApps到vCS,4种NVIDIA虚拟GPU场景化对比

企业级虚拟GPU技术选型全景指南&#xff1a;四大应用场景深度解析 在数字化转型浪潮中&#xff0c;图形处理单元(GPU)的虚拟化技术正成为企业IT架构的关键支柱。无论是设计团队的3D建模、数据分析师的机器学习任务&#xff0c;还是全公司范围的虚拟桌面部署&#xff0c;虚拟GPU…...

紧固件包装机有哪些类型?自动化包装设备全解析_FES 2026上海紧固件展

2026第十六届上海紧固件专业展&#xff08;Fastener Expo Shanghai 2026&#xff09;将于6月24日至26日在国家会展中心&#xff08;上海&#xff09;举行。作为紧固件行业的重要展示窗口&#xff0c;本届展会将重点呈现制造端与后道环节的智能化升级&#xff0c;其中&#xff0…...

计算机毕业设计springboot校园互助平台 基于SpringBoot的高校学生互助服务系统 SpringBoot框架下的校园协同帮助平台

计算机毕业设计springboot校园互助平台3m6f99 &#xff08;配套有源码 程序 mysql数据库 论文&#xff09;本套源码可以先看具体功能演示视频领取&#xff0c;文末有联xi 可分享近年来&#xff0c;随着互联网技术的蓬勃发展和智慧校园建设的深入推进&#xff0c;高校学生对于便…...