最短路与拓扑(2)

1、信使

#include<bits/stdc++.h>
using namespace std;
const int N=105;
int n,m;
int g[N][N];
int dist[N];
bool st[N];
const int INF=0x3f3f3f3f;int dij(){memset(dist,0x3f,sizeof dist);dist[1]=0;for(int i=1;i<n;i++){int t=0;for(int j=1;j<=n;j++){if(!st[j]&&dist[j]<dist[t]){t=j;}}st[t]=true;for(int k=1;k<=n;k++){dist[k]=min(dist[k],dist[t]+g[t][k]);}}int res=0;for(int i=1;i<=n;i++){if(dist[i]==INF) return -1;res=max(res,dist[i]);}return res;
}int main(){cin>>n>>m;memset(g,0x3f,sizeof g);for(int i=1;i<=n;i++){g[i][i]=0;}for(int i=0;i<m;i++){int u,v,w;cin>>u>>v>>w;g[u][v]=min(g[u][v],w);g[v][u]=min(g[v][u],w);} cout<<dij()<<endl;return 0;
}

2、最小花费

#include<bits/stdc++.h>
using namespace std;
const int N=2005;
double g[N][N];
double dist[N];
bool st[N];
int n,m,A,B;
void dij(){memset(st, 0, sizeof st);st[N]={0.0};dist[A]=1.0;for(int i=1;i<=n;i++){int t=-1;for(int j=1;j<=n;j++){if(!st[j]&&(t==-1||dist[j]>dist[t])){t=j;}}if(t==0)continue;st[t]=true;for(int k=1;k<=n;k++){if(g[t][k]>0){dist[k]=max(dist[k],dist[t]*g[t][k]);}	}}
}
int main(){cin>>n>>m;for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){g[i][j]=0;}}for(int i=1;i<=n;i++){int u,v,w;cin>>u>>v>>w;double r=(100.0-w)/100.0;g[u][v]=max(g[u][v],r);g[v][u]=max(g[u][v],r);}cin>>A>>B;dij();cout<<fixed<<setprecision(8)<<100.0/dist[B]<<endl;return 0;
}

3、Dijkstra算法(模板)

#include<bits/stdc++.h>
using namespace std;
const int N=2505;
int g[N][N];
int dis[N];
bool vis[N];
int n, m, s, t;
const int INF=1e9+10;void dij(int start, int end) {// 初始化距离数组for(int i=1; i<=n; i++) {dis[i] = INF;vis[i] = false;}dis[start] = 0;for(int i=1; i<=n; i++) {int u = -1, min_dist = INF;// 寻找未访问节点中距离最小的节点for(int j=1; j<=n; j++) {if(!vis[j] && dis[j] < min_dist) {min_dist = dis[j];u = j;}}if(u == -1) break; // 所有可达节点都已处理vis[u] = true; // 标记节点为已访问// 更新邻接节点的距离for(int v=1; v<=n; v++) {if(!vis[v] && g[u][v] != INF && dis[u] + g[u][v] < dis[v]) {dis[v] = dis[u] + g[u][v];}}}
}int main() {cin >> n >> m >> s >> t;// 初始化邻接矩阵for(int i=1; i<=n; i++) {for(int j=1; j<=n; j++) {if(i == j) g[i][j] = 0;else g[i][j] = INF; // 无边的情况初始化为INF}}// 读取边for(int i=1; i<=m; i++) {int u, v, w;cin >> u >> v >> w;// 处理重边,取最小值g[u][v] = min(g[u][v], w);g[v][u] = min(g[v][u], w);}dij(s, t);cout << dis[t] << endl; // 输出最短路径return 0;
}

4、排列论文

#include<bits/stdc++.h>
using namespace std;
const int N=105;
vector<int>g[N];
int a[N];
int n,m;
int flag;
int topSort(){queue<int>q;for(int i=1;i<=n;i++){if(a[i]==0){q.push(i);}}int cnt=0;//记录拓扑排序的排点数flag=1;while(!q.empty()){int t=q.front();q.pop();cnt++;if(!q.empty())flag=2;for(int i=0;i<g[t].size();i++){int x=g[t][i];a[x]--;if(a[x]==0)q.push(x);}}if(cnt<n)flag=0;return flag; 
}
int main() {while(cin>>n>>m){for(int i=1;i<=n;i++){//初始化 g[i].clear();//每一个点清空 a[i]=0;}for(int i=1;i<=m;i++){int u,v;cin>>u>>v;a[v]++;//更新入度 g[u].push_back(v);}int ff=topSort();if(ff==0)cout<<"0\n";else if(ff==1)cout<<"1\n";else if(ff==2)cout<<"2\n";}return 0;
}

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

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

相关文章

当 AI 邂逅丝路:揭秘「丝路智旅」,用 RAG 重塑中阿文化旅游体验

目录 系统命名:丝路智旅 (Silk Road Intelligent Travel)系统概述系统架构设计系统功能模块技术选型:为何是它们?系统优势与特点未来展望与扩展总结在数字浪潮席卷全球的今天,古老的丝绸之路正在以一种全新的方式焕发生机。当深厚的文化底蕴遇上尖端的人工智能技术,会碰撞…

SQLPub:一个提供AI助手的免费MySQL数据库服务

给大家介绍一个免费的 MySQL 在线数据库环境&#xff1a;SQLPub。它提供了最新版本的 MySQL 服务器测试服务&#xff0c;可以方便开发者和测试人员验证数据库功能&#xff0c;也可以用于学习 MySQL。 免费申请 在浏览器中输入以下网址&#xff1a; https://sqlpub.com/ SQLP…

list简单模拟实现

成员变量迭代器&#xff08;重点&#xff09;ListIterator运算符重载begin、end 插入、删除inserterase头插、尾插、头删、尾删 operator->const_iterator拷贝构造operator析构函数完整代码 由于前面已经模拟实现了vector&#xff0c;所以这里关于一些函数实现就不会讲的过于…

【计算机视觉】基于Python的相机标定项目Camera-Calibration深度解析

基于Python的相机标定项目Camera-Calibration深度解析 1. 项目概述技术核心 2. 技术原理与数学模型2.1 相机模型2.2 畸变模型 3. 实战指南&#xff1a;项目运行与标定流程3.1 环境配置3.2 数据准备3.3 执行步骤3.4 结果验证 4. 常见问题与解决方案4.1 角点检测失败4.2 标定结果…

多光谱影像:解锁遥感奥秘的 “彩色钥匙”

在遥感领域&#xff0c;多光谱影像犹如一把神奇的 “彩色钥匙”&#xff0c;为我们开启洞察地球表面与大气层的全新视角。 图片来源于星图云开放平台 多光谱影像&#xff0c;顾名思义&#xff0c;就是利用遥感平台上的多光谱传感器&#xff0c;同时对地球目标地物在多个不同光谱…

【ROS2】ROS节点启动崩溃:rclcpp::exceptions::RCLInvalidArgument

1、问题描述 启动ROS节点时,直接崩溃,打印信息如下: terminate called after throwing an instance of rclcpp::exceptions::RCLInvalidArgumentwhat(): failed to create guard condition: context argument is null, at ./src/rcl/guard_condition.c:65 [ros2run]: Abo…

MinerU安装(pdf转markdown、json)

在Windows上安装MinerU&#xff0c;参考以下几个文章&#xff0c;可以成功安装&#xff0c;并使用GPU解析。 整体安装教程&#xff1a; MinerU本地化部署教程——一款AI知识库建站的必备工具 其中安装conda的教程&#xff1a; 一步步教你在 Windows 上轻松安装 Anaconda以及使…

aws 实践创建policy + Role

今天Cyber 通过image 来创建EC2 的时候,要添加policy, 虽然是administrator 的role, 参考Cyber 提供的link: Imageshttps://docs.cyberark.com/pam-self-hosted/14.2/en/content/pas%20cloud/images.htm#Bring 1 Step1:

【ROS2】编译Qt实现的库,然后链接该库时,报错:/usr/bin/ld: XXX undefined reference to `vtable for

1、问题描述 在ROS2工程中,编译使用Qt实现的库,在其它ROS2包链接该库时,报错: /usr/bin/ld: XXX undefined reference to `vtable for2、原因分析 查看链接失败的几个函数接口都是,信号函数(signals 标记的函数)。因为信号函数都只有定义,没有实现,在执行ROS2 colc…

数据库--处理模型(Processing Model)(二)

执行查询的方法有很多,接下来将介绍以更高效和更有效率的方式执行分析工作负载(在OLAP系统中)的不同技术,包括以下内容: 执行并行性(Execution Parallelism)执行引擎(Execution Engines)执行操作符输出(Execution Operator Output)中间数据表示(Intermediate Data …

PostgreSQL pgrowlocks 扩展详解

一、简介 pgrowlocks 是 PostgreSQL 官方提供的扩展模块&#xff0c;用于查看指定表中每一行当前的行级锁&#xff08;Row Lock&#xff09;信息。它非常适用于&#xff1a; 并发冲突排查行级锁等待分析死锁前兆探测热点数据行分析 二、安装与启用 1. 安装前提&#xff08;…

关于xammp数据库打开不了,但是日志没错误的问题解决以及其数据库的备份

这里参考了两篇文章 解决Xampp中mysql无法启动的问题_xampp里面mysql的stop启动不起来-CSDN博客 mysqli_real_connect(): (HY000/1045): Access denied for user ‘root‘‘localhost‘ (using password: YES-CSDN博客 相信很多和我一样&#xff0c;很久没登xammp突然数据库…

在UI 原型设计中,交互规则有哪些核心要素?

在UI 原型设计中&#xff0c;交互规则主要有三个核心要素&#xff0c;分别为重要性、原则与实践&#xff0c;具体表现在&#xff1a; 一、交互规则在 UI 原型设计中的重要性 明确交互逻辑&#xff1a;设计阶段制定交互规则&#xff0c;清晰定义界面元素操作响应。 如社交应用…

BFD与VRRP联动

一、概述 在前面的文章我们学习了VRRP与BFD协议,VRRP(虚拟路由冗余协议)的主要特点是当Master(主)设备出现故障时,Backup(备用)设备能够快速接替Master的转发工作,尽量缩短数据流的中断时间。 在没有采用BFD与VRRP联动机制前,当Master出现故障时,VRRP依靠Backup设置的超时时间来…

Protobuf3协议关键字详解与应用实例

一、核心语法与基础关键字 syntax 声明协议版本&#xff0c;必须为文件的第一行非空、非注释内容。 syntax "proto3"; // 显式指定proto3语法&#xff0c;否则编译器默认使用proto2message 定义消息类型&#xff0c;包含一组结构化字段。支持嵌套消息定义&#xff…

如何在线免费压缩PDF文档?

PDF文件太大&#xff0c;通常是因为内部嵌入字体和图片。怎么才能将文件大小减减肥呢&#xff0c;主要有降低图片清晰度和去除相关字体两个方向来实现文档效果。接下来介绍三个免费压缩PDF实用工具。 &#xff08;一&#xff09;iLoveOFD在线转换工具 iLoveOFD在线转换工具&a…

NSSCTF [GFCTF 2021]where_is_shell

889.[GFCTF 2021]where_is_shell(system($0)64位) [GFCTF 2021]where_is_shell (1) 1.准备 motalymotaly-VMware-Virtual-Platform:~$ file shell shell: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.s…

深度学习中的提示词优化:梯度下降全解析

深度学习中的提示词优化:梯度下降全解析 在您的代码中,提示词的更新方向是通过梯度下降算法确定的,这是深度学习中最基本的优化方法。 一、梯度下降与更新方向 1. 核心公式 对于可训练参数 θ \theta θ(这里是提示词嵌入向量),梯度下降的更新公式为:

win10电脑无法访问局域网内其他共享电脑文件的问题

一、启用本地计算机guest来宾账户 操作步骤 点击桌面上的“此电脑”图标&#xff0c;再点击“管理” 在“计算机管理”界面依次点击“系统工具”“本地用户和组”“用户” 再点击右侧的“Guest”&#xff0c;在弹出的对话框中点击“属性” 在“Guest属性”界面取消勾选“账户已…

会计要素+借贷分录+会计科目+账户,几个银行会计的重要概念

1.借贷分录还是借贷分路 正确表述是“借贷分录”。 “分录”即会计分录&#xff0c;它是指预先确定每笔经济业务所涉及的账户名称&#xff0c;以及计入账户的方向和金额的一种记录&#xff0c;简称分录。 在借贷记账法下&#xff0c;会计分录通过“借”和“贷”来表示记账方向…