链接:https://vjudge.net/problem/POJ-1860
题意:
有N个点,支持货币兑换,从货币a->b手续费c,汇率r。
求能否换一圈使总净额增加。
思路:
bellman-ford。
找一个正权回路。
代码:
#include#include using namespace std;const int MAXN = 210;double dis[MAXN];int n,m,s;double v;int w = 1;struct Node{ int a,b; double r,c;}node[210];bool bellman_Ford(){ memset(dis,0, sizeof(dis)); dis[s] = v; for (int i = 1;i <= n-1;i++) { bool flag = false; for (int j = 1;j < w;i++) if (dis[node[i].b] < (dis[node[i].a] - node[i].c)*node[i].r) return true; return false;}int main(){ int a,b; double rab,cab,rba,cba; scanf("%d%d%d%lf",&n,&m,&s,&v); for (int i = 0;i