这个题的翻译其实挺恶心的,反正我是翻译不出来,看的网上的翻译
首先,大家对我的题解有什么疑问及时评论,我几乎全天都在,看到了我就会回复
这边翻译大家自己找,我只解释一下输入(输出不用我多说了)
输入的话,其实就是:第一行 货币种类(点数)和兑换站(边数),我们所持有的货币是哪一种,最后一个就是一开始有多少钱,后面的每一行都是对边的描述,货币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