//水题-SPFA解法
//套汇是指兑换货币后能使本金上升
//给定本金货币编号,货币间的汇率和手续费,求能否套汇成功
//Time:16Ms Memory:200K
#include<iostream>
#include<cstring>
#include<cstdio>
#include<queue>
using namespace std; #define MAX 105 struct Edge {
int u, next;
double w, c;
Edge(){}
Edge(int u, double w, double c, int n):u(u), w(w), c(c), next(n){}
}e[2*MAX]; int n, m, st;
double my;
int h[MAX];
double d[MAX];
bool v[MAX]; bool spfa(int x)
{
memset(d, 0, sizeof(d));
memset(v, 0, sizeof(v));
queue<int> q;
q.push(x);
d[x] = my; v[x] = true;
while (!q.empty()){
int cur = q.front();
q.pop(); v[cur] = false;
for (int i = h[cur]; i != -1; i = e[i].next)
{
int u = e[i].u;
double w = e[i].w, c = e[i].c;
if ((d[cur] - c) * w > d[u]){
d[u] = (d[cur] - c) * w;
if (u == x) return true; //更新了源点,则套汇成功
if (!v[u]) {
v[u] = true; q.push(u);
}
}
}
}
return false;
} int main()
{
memset(h, -1, sizeof(h));
scanf("%d%d%d%lf", &n, &m, &st, &my);
for (int i = 0; i < m; i++)
{
int u, v;
double w, c;
scanf("%d%d%lf%lf", &u, &v, &w, &c);
e[2 * i] = Edge(v, w, c, h[u]); h[u] = 2 * i;
scanf("%lf%lf", &w, &c);
e[2 * i + 1] = Edge(u, w, c, h[v]); h[v] = 2 * i + 1;
}
if (spfa(st)) printf("YES\n");
else printf("NO\n"); return 0;
}

ACM/ICPC 之 SPFA-兑换货币(POJ1860)的更多相关文章

  1. ACM/ICPC 之 SPFA练习两道(ZOJ3088-ZOJ3103)

    两道题都需要进行双向SPFA,比范例复杂,代码也较长,其中第二题应该可以用DFS或者BFS做,如果用DFS可能需要的剪枝较多. ZOJ3088-Easter Holydays //利用SPFA找出下降 ...

  2. ACM/ICPC 之 SPFA范例两道(POJ3268-POJ3259)

    两道以SPFA算法求解的最短路问题,比较水,第二题需要掌握如何判断负权值回路. POJ3268-Silver Cow Party //计算正逆最短路径之和的最大值 //Time:32Ms Memory ...

  3. 2017 ACM/ICPC Asia Regional Shenyang Online spfa+最长路

    transaction transaction transaction Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 132768/1 ...

  4. 2017 ACM/ICPC Shenyang Online SPFA+无向图最长路

    transaction transaction transaction Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 132768/1 ...

  5. ACM - ICPC World Finals 2013 C Surely You Congest

    原题下载:http://icpc.baylor.edu/download/worldfinals/problems/icpc2013.pdf 题目翻译: 试题来源 ACM/ICPC World Fin ...

  6. HDU 5876 Sparse Graph 【补图最短路 BFS】(2016 ACM/ICPC Asia Regional Dalian Online)

    Sparse Graph Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)To ...

  7. hdu 5016 点分治(2014 ACM/ICPC Asia Regional Xi'an Online)

    Mart Master II Time Limit: 12000/6000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)T ...

  8. 2014嘉杰信息杯ACM/ICPC湖南程序设计邀请赛暨第六届湘潭市程序设计竞赛

    比赛链接: http://202.197.224.59/OnlineJudge2/index.php/Contest/problems/contest_id/36 题目来源: 2014嘉杰信息杯ACM ...

  9. ACM/ICPC 之 BFS(离线)+康拓展开(TSH OJ-玩具(Toy))

    祝大家新年快乐,相信在新的一年里一定有我们自己的梦! 这是一个简化的魔板问题,只需输出步骤即可. 玩具(Toy) 描述 ZC神最擅长逻辑推理,一日,他给大家讲述起自己儿时的数字玩具. 该玩具酷似魔方, ...

随机推荐

  1. ssi技术

    html页面 <!DOCTYPE html> <html> <head> <title>测试ssi</title> <meta nam ...

  2. openssh for windows安装

     openssh for windows安装 2009-11-22 22:43:58 分类: WINDOWS 本文转自:http://blog.chinaunix.net/uid-7541208-id ...

  3. Redis在WEB开发中的应用与实践

    Redis在WEB开发中的应用与实践 一.Redis概述: Redis是一个功能强大.性能高效的开源数据结构服务器,Redis最典型的应用是NoSQL.但事实上Redis除了作为NoSQL数据库使用之 ...

  4. UTF-8-BOM

    https://www.zhihu.com/question/20167122 知乎 「带 BOM 的 UTF-8」和「无 BOM 的 UTF-8」有什么区别?网页代码一般使用哪个? http://b ...

  5. [设计模式] javascript 之 享元模式;

    享元模式说明 定义:用于解决一个系统大量细粒度对象的共享问题: 关健词:分离跟共享: 说明: 享元模式分单纯(共享)享元模式,以及组合(不共享)享元模式,有共享跟不共享之分:单纯享元模式,只包含共享的 ...

  6. windows下PHP+Mysql+Apache环境搭建

    Apache版本:httpd-2.2.22-win32-x86-openssl-                   下载地址:http://pan.baidu.com/s/1sjuL4RV PHP版 ...

  7. java 在接口里函数不能重载?

    项目里使用hession远程调用serviceRemote接口,而serviceRemote接口里有两个save方法,参数分别是CpCredential对象和List,但运行发现会报莫名其妙的错. 后 ...

  8. hadoop 之 kafka 安装与 flume -> kafka 整合

    62-kafka 安装 : flume 整合 kafka 一.kafka 安装 1.下载 http://kafka.apache.org/downloads.html 2. 解压 tar -zxvf ...

  9. maven之ubutu安装

    1.下载地址:http://maven.apache.org/download.cgi 2.安装 将下载后的文件解压到你指定的文件即可,命令如下: tar -xzvf apache-maven-3.0 ...

  10. 一个C#的与web服务器交互的HttpClient类

    using System; using System.Collections.Generic; using System.IO; using System.Text; using System.Net ...