zoukankan      html  css  js  c++  java
  • poj 1860Currency Exchange

    思路:

    bellman-ford检验正回路

    代码:

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    using namespace std;
    struct infor{
    	int from;
    	int to;
    	double r;
    	double c;
    };
    infor es[20008];
    double dis[200],v;
    int enu,n,s;
    bool bellman()
    {
    	memset(dis,0,sizeof(dis));
    	dis[s]=v;
    	for(int i=0;i<n;i++){
    		for(int j=0;j<enu;j++){
    			infor e=es[j];
    			if(dis[e.to]<(dis[e.from]-e.c)*e.r){
    				dis[e.to]=(dis[e.from]-e.c)*e.r;
    				if(i==n-1)return true;
    			}
    		}
    	}
    	return false;
    }
    int main()
    {
    	int m,a,b;
    	enu=0;
    	double rab,cab,rba,cba;
    	cin>>n>>m>>s>>v;
    	for(int i=0;i<m;i++){
    		cin>>a>>b>>rab>>cab>>rba>>cba;
    		es[enu].from=a;
    		es[enu].to=b;
    		es[enu].r=rab;
    		es[enu++].c=cab;
    		es[enu].from=b;
    		es[enu].to=a;
    		es[enu].r=rba;
    		es[enu++].c=cba;
    	}
    	if(bellman())
    		cout<<"YES"<<endl;
    	else
    		cout<<"NO"<<endl;
    }
    

      

  • 相关阅读:
    关于java.lang.reflect.InvocationTargetException
    Java并发编程(三)后台线程(Daemon Thread)
    Lab 7-2
    Lab 7-1
    Lab 6-3
    Lab 6-2
    Lab 6-1
    Lab 5-1
    Lab 3-4
    Lab 3-3
  • 原文地址:https://www.cnblogs.com/Neptunes/p/3414666.html
Copyright © 2011-2022 走看看