题目链接:
https://www.luogu.org/problem/P1931
类似题目:
https://blog.csdn.net/aiwo1376301646/article/details/100583424
思路:
1:方向:最长路的变形问题
2:把汇率表抽象成一个有向图,每个货币是一个结点,每条边上的权值就是汇率
3:无法套利的情况分两种:
1:没有环,即最后无法回到该种货币
2:有环,但是没有利率之积大于1的环
4:核心思想及注意事项:满足题意可以套利的情况需要满足两个条件:
1:有环
2:有利率之积大于1的环
思考我们判断是否有环的方法是,用一个数组times存每一个节点入队的次数,如果有环,那么同一个节点入队的次数将大于等于节点总个数即n个,又因为要使一个节点n次及以上入队,那么必须满足
if(d[v]<d[now]*e[now][i].second)
也就说明了,经过这一圈的转换,比原来的值大,(只有比原来的值大,才可以执行if条件里的代码,才可以实现time