1087 All Roads Lead to Rome(最短路求最大权值,最短路路径条数,节点个数,回溯路径)

(这题基本上把最短路能求的都求了个遍,除了麻烦一点,难度其实还好) 

(卡题原因:dijks漏了对路径条数的初始化。)

#include<bits/stdc++.h>
using namespace std;
#define int long long
int n,k;
string st,ed;
map<string,int>mp;
map<int,string>name;
map<int,int>w;
int e[210][210];
int indx=0;
int getID(string s){if(mp.count(s)){return mp[s];}name[indx]=s;mp[s]=indx++;return mp[s];
}
int dist[210];
int hap[210],num[210];
int sum[210];
int p[210];
bool vis[210];
void dijks(int u){memset(dist,0x3f,sizeof dist);memset(vis,0,sizeof vis);memset(p,-1,sizeof p);dist[u]=0;sum[u]=1;//记得每个都要初始化,漏了这个,结果debug半多小时for(int i=0;i<indx;i++){u=-1;int mi=INT_MAX;for(int j=0;j<indx;j++){if(!vis[j]&&mi>dist[j]){u=j;mi=dist[j];}}if(u==-1)break;vis[u]=1;for(int j=0;j<indx;j++){if(!vis[j]){if(dist[j]==dist[u]+e[u][j]){sum[j]=sum[u]+sum[j];if(hap[j]==hap[u]+w[j]){if(num[j]>num[u]+1){p[j]=u;num[j]=num[u]+1;}}else if(hap[j]<hap[u]+w[j]){p[j]=u;hap[j]=hap[u]+w[j];num[j]=num[u]+1;}}else if(dist[j]>dist[u]+e[u][j]){sum[j]=sum[u];p[j]=u;dist[j]=dist[u]+e[u][j];hap[j]=hap[u]+w[j];num[j]=num[u]+1;}}}}u=getID(ed);cout<<sum[u]<<' '<<dist[u]<<' '<<hap[u]<<' '<<(hap[u])/num[u]<<endl;
}
int flag=0;
void dfs(int u){if(u==-1)return ;dfs(p[u]);if(flag)cout<<"->";cout<<name[u];flag=1;
}
signed main(){cin>>n>>k>>st;memset(e,0x3f,sizeof e);ed="ROM";getID(st);getID(ed);for(int i=0;i<n-1;i++){string city;cin>>city;int d;cin>>d;w[getID(city)]=d;// cout<<getID(city)<<' ';}w[getID(st)]=0;for(int i=0;i<k;i++){string c1,c2;cin>>c1>>c2;int a,b,d;cin>>d;a=getID(c1);b=getID(c2);e[a][b]=e[b][a]=d;}dijks(getID(st));dfs(getID(ed));
}

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

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

相关文章

深入Android S (12.0) 探索Framework之输入系统IMS的构成与启动

文章目录 前言一、输入系统的基本组成部分二、输入系统相关源码分析1、IMS 构建1.1、SystemServer # startOtherServices()1.2、InputManagerService1.3、NativeInputManager # nativeInit()1.4、NativeInputManager1.5、InputManager1.6、InputDispatcher1.7、InputReader1.8、…

Filament引擎分析--command抽象设备API

1. 前言 Filament中使用了FrameGraph来管理渲染管线&#xff0c;需要准备两点&#xff1a; 设备接口抽象&#xff1a;设备API抽象为Command资源抽象&#xff1a;使用虚拟资源&#xff0c;在实际用到时再创建&#xff0c;方便剔除无用资源 下面就围绕Filament中设备API抽象为…

网络安全小白自学

一、网络安全应该怎么学&#xff1f; 1.计算机基础需要过关 这一步跟网安关系暂时不大&#xff0c;是进入it行业每个人都必须掌握的基础能力。 计算机网络计算机操作系统算法与数据架构数据库 Tips:不用非要钻研至非常精通&#xff0c;可以与学习其他课程同步进行。 2.渗透技…

2015年五一杯数学建模C题生态文明建设评价问题解题全过程文档及程序

2015年五一杯数学建模 C题 生态文明建设评价问题 原题再现 随着我国经济的迅速发展&#xff0c;生态文明越来越重要&#xff0c;生态文明建设被提到了一个前所未有的高度。党的十八大报告明确提出要大力推进生态文明建设&#xff0c;报告指出“建设生态文明&#xff0c;是关系…

目标检测YOLO系列从入门到精通技术详解100篇-【图像处理】图像分割(补充篇)

目录 前言 知识储备 图像分割-行为检测 算法原理 什么是图像分割?

NOI / 1.7编程基础之字符串 30:字符环 c语言 两次遍历解决循环

描述 有两个由字符构成的环。请写一个程序&#xff0c;计算这两个字符环上最长连续公共字符串的长度。例如&#xff0c;字符串“ABCEFAGADEGKABUVKLM”的首尾连在一起&#xff0c;构成一个环&#xff1b;字符串“MADJKLUVKL”的首尾连在一起&#xff0c;构成一个另一个环&…

【Python】torch.exp()和 torch.sigmoid()函数详解和示例

本文对torch.exp&#xff08;&#xff09;和 torch.sigmoid&#xff08;&#xff09;函数进行原理和示例讲解&#xff0c;以帮助大家理解和使用。 目录 torch.exp函数原理运行示例 torch.sigmoid&#xff08;&#xff09;函数原理运行示例torch.sigmoid相关知识 结合运行 torc…

2023网络安全产业图谱

1. 前言 2023年7月10日&#xff0c;嘶吼安全产业研究院联合国家网络安全产业园区&#xff08;通州园&#xff09;正式发布《嘶吼2023网络安全产业图谱》。 嘶吼安全产业研究院根据当前网络安全发展规划与趋势发布《嘶吼2023网络安全产业图谱》调研&#xff0c;旨在进一步了解…

Python与设计模式--命令模式

23种计模式之 前言 &#xff08;5&#xff09;单例模式、工厂模式、简单工厂模式、抽象工厂模式、建造者模式、原型模式、(7)代理模式、装饰器模式、适配器模式、门面模式、组合模式、享元模式、桥梁模式、&#xff08;11&#xff09;策略模式、责任链模式、命令模式、中介者模…

Net6.0或Net7.0项目升级到Net8.0 并 消除.Net8中SqlSugar的警告

本文基于NetCore3.1或Net6.0项目升级到Net7.0&#xff0c;参考连接&#xff1a;NetCore3.1或Net6.0项目升级到Net7.0-CSDN博客 所有项目按照此步骤操作一遍&#xff0c;完成后再将所有引用的包&#xff08;即 *.dll&#xff09;更新升级到最新版&#xff08;注意&#xff1a;有…

在 CentOS 7 上安装 MySQL 8

在 CentOS 7 上安装 MySQL 8 步骤 1: 添加 MySQL Yum 存储库 首先&#xff0c;我们需要添加 MySQL Yum 存储库。打开终端并执行以下命令&#xff1a; sudo yum install -y https://repo.mysql.com/mysql80-community-release-el7-3.noarch.rpm步骤 2: 导入 MySQL GPG 公钥 …

python-爬虫(可直接使用)

爬虫&#xff08;Web Scraping&#xff09;是指通过编程自动化地获取互联网上的信息的过程。爬虫的目的通常是从网页中抓取数据&#xff0c;进行数据分析、处理或展示。以下是爬虫的基本流程和一些重要的概念&#xff1a; 爬虫基本流程&#xff1a; 确定目标&#xff1a; 确定要…

【Rust】快速教程——自定义类型、数字转枚举、Cargo运行

前言 超过一定的年龄之后&#xff0c;所谓人生&#xff0c;无非是一个不断丧失的过程而已。宝贵的东西&#xff0c;会像梳子豁了齿一样从手中滑落下去。你所爱的人会一个接着一个&#xff0c;从身旁悄然消逝。——《1Q84》 \;\\\;\\\; 目录 前言自定义类型数字转枚举Cargo.tom…

CorelDRAW Graphics Suite2023破解版含2024最新注册机下载

CorelDRAW Graphics Suite2023是Corel公司的平面设计软件&#xff1b;该软件是Corel出品的矢量图形制作工具软件&#xff0c;这个图形工具给设计师提供了矢量动画、页面设计、网站制作、位图编辑和网页动画等多种功能。在日常科研绘图中&#xff0c;若较为轻量&#xff0c;通常…

处理器及微控制器:XCZU15EG-2FFVC900I 可编程单元

XCZU15EG-2FFVC900I参数&#xff1a; Zynq UltraScale™ MPSoC 系列基于 Xilinx UltraScale™ MPSoC 架构。该 Zynq UltraScale™ MPSoC 器件集成了功能丰富的 64 位四核或双核 Arm Cortex-A53 和双核 Arm Cortex-R5F 处理系统&#xff08;基于 Xilinx UltraScale™ MPSoC 架…

六、Lua运算符

文章目录 一、Lua 运算符&#xff08;一&#xff09;算术运算符&#xff08;二&#xff09;关系运算符&#xff08;三&#xff09;逻辑运算符&#xff08;四&#xff09;其他运算符 二、运算符优先级 一、Lua 运算符 运算符是一个特殊的符号&#xff0c;用于告诉解释器执行特定…

443. 压缩字符串

这篇文章会收录到 : 算法通关村第十二关-黄金挑战字符串冲刺题-CSDN博客 压缩字符串 描述 : 给你一个字符数组 chars &#xff0c;请使用下述算法压缩&#xff1a; 从一个空字符串 s 开始。对于 chars 中的每组 连续重复字符 &#xff1a; 如果这一组长度为 1 &#xff0c;…

数据中台之核心调度模块的设计

目录 1. DAG图的设计 1.1功能设计要点 1.2数据库设计要点 2. 调度器设计 2.1XXL-JOB 调度架构特点

常用工具函数

数字转中文 function numberToEnglish(num) {if (num < 0 || num > 999999999) {return Number out of range;}const ones [zero, one, two, three, four, five, six, seven, eight, nine];const teens [eleven, twelve, thirteen, fourteen, fifteen, sixteen, seven…

MySQL- CRUD

一、INSERT 添加 公式 INSERT INTO table_name [(column [, column...])] VALUES (value [, value...]); 示例&#xff1a; CREATE TABLE goods (id INT ,good_name VARCHAR(10),price DOUBLE ); #添加数据 INSERT INTO goods (id,good_name,price ) VALUES (20,华为手机,…