最小花费——最短路

在 n 个人中,某些人的银行账号之间可以互相转账。这些人之间转账的手续费各不相同。给定这些人之间转账时需要从转账金额里扣除百分之几的手续费,请问 A 最少需要多少钱使得转账后 B 收到 100 元。

输入格式
第一行输入两个正整数 n,m,分别表示总人数和可以互相转账的人的对数。
以下 m 行每行输入三个正整数 x,y,z,表示标号为 x 的人和标号为 y 的人之间互相转账需要扣除 z% 的手续费 ( z<100 )。
最后一行输入两个正整数 A,B。
数据保证 A 与 B 之间可以直接或间接地转账。

输出格式
输出 A 使得 B 到账 100 元最少需要的总费用。精确到小数点后 8 位。

数据范围
1≤n≤2000,m≤105

输入样例:
3 3
1 2 1
2 3 2
1 3 3
1 3

输出样例:
103.07153164

#include <bits/stdc++.h>
using namespace std;
#define int long long 
#define ios ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
typedef pair<double,int> PII;
const int N=100000;
struct node
{int v,w;
};
vector <node> g[N];
int n,m,l,r;
double d[N];
bool vis[N];
void dijkstra()
{double y=100.0;priority_queue <PII,vector<PII>,greater<PII>> q;for (int i=1;i<=n;i++) d[i]=1000000.0;d[r]=100.0;q.push({y,r});while (q.size()){double tance=q.top().first;int u=q.top().second;q.pop();if (vis[u]) continue;vis[u]=1;for (auto x:g[u]){int v=x.v,w=x.w;if (d[v]>tance*100.0/(100-w)){d[v]=tance*100.0/(100-w);q.push({d[v],v});}}}
}
signed main()
{cin>>n>>m;while (m--){int a,b,w;cin>>a>>b>>w;g[a].push_back({b,w});g[b].push_back({a,w});}cin>>l>>r;dijkstra();printf("%.8lf",d[l]);return 0;
}

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

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

相关文章

性能测试 —— Jmeter分布式测试的注意事项和常见问题

Jmeter是一款开源的性能测试工具&#xff0c;使用Jmeter进行分布式测试时&#xff0c;也需要注意一些细节和问题&#xff0c;否则可能会影响测试结果的准确性和可靠性。 Jmeter分布式测试时需要特别注意的几个方面 1. 参数化文件的位置和内容 如果使用csv文件进行参数化&…

力扣labuladong——一刷day33

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、力扣652. 寻找重复的子树 前言 前序位置的代码只能从函数参数中获取父节点传递来的数据&#xff0c;而后序位置的代码不仅可以获取参数数据&#xff0c;还可…

java算法学习索引之动态规划

一 斐波那契数列问题的递归和动态规划 【题目】给定整数N&#xff0c;返回斐波那契数列的第N项。 补充问题 1&#xff1a;给定整数 N&#xff0c;代表台阶数&#xff0c;一次可以跨 2个或者 1个台阶&#xff0c;返回有多少种走法。 【举例】N3&#xff0c;可以三次都跨1个台…

python循环队列

1.循环队列简介&#xff1a; 循环队列是一种队列的实现方式&#xff0c;它可以避免队列空间的浪费。循环队列的特点是队列的末尾连接到队列的开头&#xff0c;形成一个循环。这样当队列尾部元素达到队列的最大容量时&#xff0c;新的元素可以循环地放入队列的开头。这种设计使…

Linux使用Docker完整安装Superset,同时解决please use superset_config.py to override it报错

文章目录 Docker安装Superset流程1. 首先获取镜像2. 生成SSL3. 创建Superset容器4. 更新数据库5. 测试访问Superset Docker安装Superset流程 1. 首先获取镜像 docker pull amancevice/superset2. 生成SSL 接下来我们运行一些额外的程序&#xff1a; openssl rand -base64 4…

ubuntu开机系统出错且无法恢复。请联系系统管理员。

背景&#xff1a; ubuntu22.04.2命令行&#xff0c;执行自动安装系统推荐显卡驱动命令&#xff0c;字体变大&#xff0c;重启后出现如下图错误&#xff0c;无法进入系统&#xff0c;无法通过CTRLALTF1-F3进入TTY模式。 解决办法&#xff1a; 1.首先要想办法进入系统&#xff…

LeetCode 2656. K 个元素的最大和:一次遍历(附Python一行版代码)

【LetMeFly】2656.K 个元素的最大和&#xff1a;一次遍历&#xff08;附Python一行版代码&#xff09; 力扣题目链接&#xff1a;https://leetcode.cn/problems/maximum-sum-with-exactly-k-elements/ 给你一个下标从 0 开始的整数数组 nums 和一个整数 k 。你需要执行以下操…

Pass-中间件管理

中间件管理是指对应用软件和操作系统之间的软件层进行管理和调度的过程&#xff0c;以优化应用性能和提高系统可靠性。 中间件管理是什么&#xff1f; 中间件管理是软件开发过程中不可或缺的一部分&#xff0c;它主要负责管理应用程序与操作系统之间的交互。中间件&#xff0…

python实现一个简单的桌面倒计时小程序

本章内容主要是利用python制作一个简单的桌面倒计时程序&#xff0c;包含开始、重置 、设置功能。 目录 一、效果演示 二、程序代码 一、效果演示 二、程序代码 #!/usr/bin/python # -*- coding: UTF-8 -*- """ author: Roc-xb """import tkin…

Python数据容器(字典)

字典 1.字典的定义2.字典数据的获取3.字典的嵌套4.嵌套字典的内容获取5.字典的常用操作6.常用操作总结7.遍历字典8.练习 1.字典的定义 同样使用{}&#xff0c;不过存储的元素是一个一个的&#xff1a;键值对&#xff0c;语法如下 # 定义字典字面量 {key:value,key:value,...,…

systemverilog:interface中的modport用法

使用modport可以将interface中的信号分组并指定方向&#xff0c;方向是从modport连接的模块看过来的。简单示例如下&#xff1a; interface cnt_if (input bit clk);logic rstn;logic load_en;logic [3:0] load;logic [7:0] count;modport TEST (input clk, count,output rst…

百度飞浆环境安装

前言&#xff1a; 在安装飞浆环境之前得先把pytorch环境安装好&#xff0c;不过关于pytorch网上教程最多的都是通过Anaconda来安装&#xff0c;但是Anaconda环境安装容易遇到安装超时导致安装失败的问题&#xff0c;本文将叫你如何通过pip安装的方式快速安装&#xff0c;其实这…

一键帮您解决win11最新版画图工具难用问题!

&#x1f984;个人主页:修修修也 ⚙️操作环境:Windows 11 正文 自从win11更新后,新版的画图工具变得非常难用,如: 使用橡皮擦后露出背版马赛克 框住某部分拖动移动时背景露出马赛克剪贴板上图片信息无法直接插入到画图板 目前没有一个好一些的能够在软件内部解决这些问题的方…

https代理如何设置?https代理有什么好处和坏处?

一、HTTPS代理如何设置&#xff1f; 在Windows上设置HTTPS代理通常需要以下步骤&#xff1a; 1. 打开“Internet选项”&#xff08;可以在开始菜单中搜索&#xff09;。 2. 在弹出的窗口中&#xff0c;选择“连接”选项卡。 3. 点击“局域网设置”按钮。 4. 在弹出的窗口中&…

【nlp】2.1 认识RNN模型

认识RNN模型 1 什么是RNN模型2 RNN模型的作用3 RNN模型的分类:1 什么是RNN模型 RNN(Recurrent Neural Network),,中文称作循环神经网络,它一般以序列数据为输入, 通过网络内部的结构设计有效捕捉序列之间的关系特征,一般也是以序列形式进行输出。 一般单层神经网络结构:…

异步方法、async/await逃离回调地狱(Callback Hell)

逃离回调地狱 奇妙の比喻什么是回调地狱回调地狱的示例使用异步方法重构的示例总结 奇妙の比喻 什么是回调地狱&#xff1f; 想象一下&#xff0c;当你在代码中遇到回调地狱时&#xff0c;就像是掉进了一个充满嵌套陷阱的地狱。你的代码变得像一团乱麻&#xff0c;难以理解和维…

vue.config.js忽略对eslint检查

vue.config.js忽略对eslint检查 创建.eslintignore在文件里添加你所需要忽略的文件 vue.config.js eslint.js如果要忽略eslint报错 module.exports defineConfig({lintOnSave:false }&#xff09;或者 module.exports{lintOnSave:false }

8.查询数据

一、单表查询 MySQL从数据表中查询数据的基本语为SELECT语。SELECT语的基本格式是: SELECT {* | <字段列名>} [ FROM <表 1>, <表 2>… [WHERE <表达式> [GROUP BY <group by definition> [HAVING <expression> [{<operator>…

Linux常用的磁盘使用情况命令汇总

1、查看分区使用百分比 df -h 2、查看指定目录磁盘使用情况 du -hac --max-depth1 /opt 参数&#xff1a;-a 查看所有文件&#xff0c;-c 汇总统计&#xff0c;max-depth1 查看深度为1&#xff0c;2级目录不再统计。 3、常用统计命令汇总

【vue实战项目】通用管理系统:api封装、404页

前言 本文为博主的vue实战小项目系列中的第三篇&#xff0c;很适合后端或者才入门的小伙伴看&#xff0c;一个前端项目从0到1的保姆级教学。前面的内容&#xff1a; 【vue实战项目】通用管理系统&#xff1a;登录页-CSDN博客 【vue实战项目】通用管理系统&#xff1a;封装to…