真是气skr人。。没把d[]换成double。。。de了一上午的bug//

记得用G++提交啊


题目链接:http://poj.org/problem?id=1860

题意:告诉你n个点,m条路。起始点s,还有初始金额money。每条路表示从a->b的汇率和佣金以及b->a的汇率和佣金。你在该点所得是(本金-佣金)*汇率。问你这个人能不能赚钱。

题解:spfa套一下//。记得d[]换成double。具体的看看代码。QWQ。

代码:

 #include<iostream>
#include<stack>
#include<vector>
#include<queue>
#include<algorithm>
#include<cstdio>
using namespace std;
const int maxn = ; struct node{
int to;
double r;
double c;
}; vector< node > e[maxn]; int n,m,num;
double money;
double d[maxn];
int inq[maxn]; bool spfa(int s){
for(int i = ; i <= n ;i++){
inq[i] = d[i] = ;
}
queue<int>Q;
Q.push(s);
d[s] = money;
inq[s] = ;
while( !Q.empty() ){
int now = Q.front();
Q.pop();
inq[now] = ;
for(int i = ; i < e[now].size() ; i++){
double rate = e[now][i].r;
double commis = e[now][i].c;
int v = e[now][i].to; if(d[v] < (d[now] - commis) * rate){
d[v] = (d[now] - commis) * rate;
if(inq[v] == ){
inq[v] = ;
Q.push(v);
}
} if(d[s] > money){
return true;
}
} }
return false;
} int main() {
scanf("%d%d%d%lf",&n,&m,&num,&money);
int x,y;
double r,c;
while(m--){
scanf("%d%d%lf%lf",&x,&y,&r,&c);
e[x].push_back((node){y,r,c});
scanf("%lf%lf",&r,&c);
e[y].push_back((node){x,r,c});
}
if(spfa(num))
cout<<"YES"<<endl;
else
cout<<"NO"<<endl; return ;
}

【POJ】1860 Currency Exchange的更多相关文章

  1. 最短路(Bellman_Ford) POJ 1860 Currency Exchange

    题目传送门 /* 最短路(Bellman_Ford):求负环的思路,但是反过来用,即找正环 详细解释:http://blog.csdn.net/lyy289065406/article/details ...

  2. POJ 1860 Currency Exchange / ZOJ 1544 Currency Exchange (最短路径相关,spfa求环)

    POJ 1860 Currency Exchange / ZOJ 1544 Currency Exchange (最短路径相关,spfa求环) Description Several currency ...

  3. POJ 1860 Currency Exchange 最短路+负环

    原题链接:http://poj.org/problem?id=1860 Currency Exchange Time Limit: 1000MS   Memory Limit: 30000K Tota ...

  4. POJ 1860 Currency Exchange + 2240 Arbitrage + 3259 Wormholes 解题报告

    三道题都是考察最短路算法的判环.其中1860和2240判断正环,3259判断负环. 难度都不大,可以使用Bellman-ford算法,或者SPFA算法.也有用弗洛伊德算法的,笔者还不会SF-_-…… ...

  5. 【POJ】1704 Georgia and Bob(Staircase Nim)

    Description Georgia and Bob decide to play a self-invented game. They draw a row of grids on paper, ...

  6. 【POJ】1067 取石子游戏(博弈论)

    Description 有两堆石子,数量任意,可以不同.游戏开始由两个人轮流取石子.游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子:二是可以在两堆中同时取走相同数量的石子.最后 ...

  7. POJ 1860 Currency Exchange【bellman_ford判断是否有正环——基础入门】

    链接: http://poj.org/problem?id=1860 http://acm.hust.edu.cn/vjudge/contest/view.action?cid=22010#probl ...

  8. POJ 1860 Currency Exchange【SPFA判环】

    Several currency exchange points are working in our city. Let us suppose that each point specializes ...

  9. POJ 1860——Currency Exchange——————【最短路、SPFA判正环】

    Currency Exchange Time Limit:1000MS     Memory Limit:30000KB     64bit IO Format:%I64d & %I64u S ...

随机推荐

  1. Useful code snippets with C++ boost

    Useful code snippets with C++ boost Is Punctuation It’s very straight forward to use boost.regex as ...

  2. unittest框架学习笔记四之report

    # coding=utf-8'''created:2018/3/29 author:star project:test report'''# import time,os# from selenium ...

  3. ASP.NET Core学习——前言

    跌跌撞撞,公司的新项目终于要在这个月月底上线. 新项目使用ASP.NET Core来做,以前没接触过这方面的内容,只能一边学习,一边搞开发. 眼看项目上线在即,工作没那么忙,也不需要天天加班. 回想了 ...

  4. 3、第一个Appium测试

    运行脚本前环境准备: 1.IDE,推荐使用IJ 2.安装jdk环境,推荐>1.8 3.准备一台真机或者模拟器 4.SDK 5.maven环境 项目目录: CalculatorTest.java文 ...

  5. 作用域 {}代码块 const修饰符 引用

    简单分为:全局作用域.局部作用域.语句作用域 如果希望在局部变量的作用域内使用同名的全局变量,可以在该变量前加上“::” ::aver=20 #include<iostream> usin ...

  6. assignment of day four

    目录 1.Numeric type (1)integer (2)float Usefulness Define How to use 2.string type Use Define How to u ...

  7. Hive实践(hive0.12)

    版本号:cdh5.0.0+hadoop2.3.0+hive0.12 一.原始数据: 1. 本地数据 [root@node33 data]# ll total 12936 -rw-r--r--. 1 r ...

  8. 二.Python基础语法和数据类型

    Python第二节 基础语法和数据类型 Python编码 python3默认情况下源码文件以UTF-8编码, 字符串均为unicode字符串.同时也可以通过# -*- coding: cp-1252 ...

  9. 从零开始搭搭建系统3.1——顶级pom制定

    从零开始搭搭建系统3.1——顶级pom制定

  10. php 简单的工程模式 实现加法操作

    class A{ protected $Num1; protected $Num2; public $result; public function getNum1(){ return $this-& ...