POJ1860(最短路好像都能做,这边我们用SPFA)

这篇博客介绍了如何使用SPFA算法解决POJ1860题目的最短路径问题。博主分享了题目翻译的困难,并提供了输入格式的详细解释。输入包括货币种类、兑换站数量、起始货币和金额,以及兑换汇率和佣金。博主的独特视角在于将边权定义为兑换得到的货币数,并通过实例说明权值更新方法。欢迎读者提出疑问进行讨论。
摘要由CSDN通过智能技术生成

 这个题的翻译其实挺恶心的,反正我是翻译不出来,看的网上的翻译

首先,大家对我的题解有什么疑问及时评论,我几乎全天都在,看到了我就会回复

这边翻译大家自己找,我只解释一下输入(输出不用我多说了)

输入的话,其实就是:第一行 货币种类(点数)和兑换站(边数),我们所持有的货币是哪一种,最后一个就是一开始有多少钱,后面的每一行都是对边的描述,货币A,货币B,然后A-B的利率和佣金,B-A的利率和佣金,其实这就是建边的过程了

然后最重要的一个问题,就是权值该怎么定义,这边我没有看过其他题解,所以我就说一下我的

是这样的,我将边权定义为:兑换的钱数,所有边权初始值为0,就是如果A兑换100个B,C能兑换101个B,那权值数组就更新C-B的值,大家如果有什么疑问可以及时评论。

#include <cstring>
#include <iostream>
#include <algorithm>
#include <queue>
using namespace std;

const int N = 1100;

int st[N];

int aim;

int idx;

int h[N];

double cm[N];

int e[N];

int ne[N];

double ll[N];
///
double bj;

int n , m ;
 
int s;
///

double dist[N];//存公式算出来的值 越大越好 

void add(int a, int b , double 
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值