zoukankan      html  css  js  c++  java
  • POJ-1860-Currency Exchange

    链接:https://vjudge.net/problem/POJ-1860

    题意:

    有N个点,支持货币兑换,从货币a->b手续费c,汇率r。

    求能否换一圈使总净额增加。

    思路:

    bellman-ford。

    找一个正权回路。

    代码:

    #include <iostream>
    #include <memory.h>
    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;j++)
            {
                int a = node[j].a,b = node[j].b;
                double r = node[j].r,c = node[j].c;
                if (dis[b] < (dis[a]-c)*r)
                {
                    dis[b] = (dis[a]-c)*r;
                    flag = true;
                }
            }
            if (!flag)
                break;
        }
        for (int i = 1;i < 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<m;i++)
        {
            scanf("%d%d%lf%lf%lf%lf",&a,&b,&rab,&cab,&rba,&cba);
            node[w].a = a;
            node[w].b = b;
            node[w].r = rab;
            node[w++].c = cab;
            node[w].b = a;
            node[w].a = b;
            node[w].r = rba;
            node[w++].c = cba;
        }
        if (bellman_Ford())
            printf("YES
    ");
        else
            printf("NO
    ");
    
        return 0;
    }
    

      

  • 相关阅读:
    Path Sum
    Binary Tree Level Order Traversal II
    Jump Game
    leedcode 刷题-V2
    (2016 年) githup 博客地址 : https://github.com/JMWY/MyBlog
    算法分类总结
    剑指 Offer 题目汇总索引
    LeedCde 题解目录
    趣味算法总目录
    常用
  • 原文地址:https://www.cnblogs.com/YDDDD/p/10274205.html
Copyright © 2011-2022 走看看