( ̄▽ ̄)"

#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<cstring>
#include<string>
#include<vector>
#include<queue>
using namespace std; const int MAXN=40;
int n,m;
double Vcur[MAXN],R[MAXN][MAXN];
bool vis[MAXN];
int cntNode[MAXN];
char ss[MAXN][100]; bool SPFA(int st)
{
queue<int> que;
int u,v; for(int i=1;i<=n;i++)
Vcur[i]=0,vis[i]=0,cntNode[i]=0;
Vcur[st]=1000.0;vis[st]=1;cntNode[st]=1;
que.push(st); while(!que.empty())
{
u=que.front();que.pop();
vis[u]=0; for(v=1;v<=n;v++)
{
if(Vcur[u]*R[u][v]>Vcur[v])
{
Vcur[v]=Vcur[u]*R[u][v];
if(!vis[v])
{
vis[v]=1;
++cntNode[v];
que.push(v);
if(cntNode[v]>=n)
return true;
}
}
}
}
return false;
} int Find(char s[])
{
for(int i=1;i<=n;i++)
if(strcmp(s,ss[i])==0)
return i;
} int main()
{
int Case=0;
while(scanf("%d",&n)&&n)
{
memset(R,0,sizeof(R));
Case++;
for(int i=1;i<=n;i++)
scanf("%s",ss[i]);
scanf("%d",&m);
while(m--)
{
char s1[100],s2[100];
double rate;
scanf("%s",s1);
scanf("%lf",&rate);
scanf("%s",s2);
int u=Find(s1),v=Find(s2);
R[u][v]=rate;
}
int k;
for(k=1;k<=n;k++)
{
if(SPFA(k))
break;
}
if(k>n) printf("Case %d: No\n",Case);
else printf("Case %d: Yes\n",Case);
}
return 0;
}

POJ 2240 Arbitrage(SPFA+邻接矩阵)的更多相关文章

  1. POJ 2240 Arbitrage (spfa判环)

    Arbitrage Arbitrage is the use of discrepancies in currency exchange rates to transform one unit of ...

  2. POJ 2240 Arbitrage spfa 判正环

    d[i]代表从起点出发可以获得最多的钱数,松弛是d[v]=r*d[u],求最长路,看有没有正环 然后这题输入有毒,千万别用cin 因为是大输入,组数比较多,然后找字符串用strcmp就好,千万不要用m ...

  3. POJ 2240 Arbitrage / ZOJ 1092 Arbitrage / HDU 1217 Arbitrage / SPOJ Arbitrage(图论,环)

    POJ 2240 Arbitrage / ZOJ 1092 Arbitrage / HDU 1217 Arbitrage / SPOJ Arbitrage(图论,环) Description Arbi ...

  4. 最短路(Floyd_Warshall) POJ 2240 Arbitrage

    题目传送门 /* 最短路:Floyd模板题 只要把+改为*就ok了,热闹后判断d[i][i]是否大于1 文件输入的ONLINE_JUDGE少写了个_,WA了N遍:) */ #include <c ...

  5. poj 2240 Arbitrage 题解

    Arbitrage Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 21300   Accepted: 9079 Descri ...

  6. poj 2240 Arbitrage (Floyd)

    链接:poj 2240 题意:首先给出N中货币,然后给出了这N种货币之间的兑换的兑换率. 如 USDollar 0.5 BritishPound 表示 :1 USDollar兑换成0.5 Britis ...

  7. (简单) POJ 2240 Arbitrage,SPFA。

    Description Arbitrage is the use of discrepancies in currency exchange rates to transform one unit o ...

  8. POJ 2240 Arbitrage【Bellman_ford坑】

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

  9. poj 2240 Arbitrage bellman-ford算法

    点击打开链接 Arbitrage Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 13434   Accepted: 5657 ...

随机推荐

  1. MIT线性代数课程 总结与理解-第一部分

    概述 个人认为线性代数从三个角度,或者说三个工具来阐述了线性关系,分别是: 向量 矩阵 空间 这三个工具有各自的一套方法,而彼此之间又存在这密切的联系,通过这些抽象出来的工具可以用来干一些实际的活,最 ...

  2. js学习笔记1

    就是调用对象是一个Array,对Array类型增加了一个原型写法的函数,一般写一些扩展时经常用.比如判断一个元素是否在数组中之类的 Array.prototype.inArray=function(v ...

  3. [MFC美化] Skin++使用详解-使用方法及注意事项

    主要分为以下几个方面: 1.Skin++使用方法 2.使用中注意事项 一. Skin++使用方法 SkinPPWTL.dll.SkinPPWTL.lib.SkinPPWTL.h ,将三个文件及相应皮肤 ...

  4. NGINX----源码阅读---config配置脚本

    config文件为nginx的配置入口文件. 1. #!/bin/sh # Copyright (C) Igor Sysoev # Copyright (C) Nginx, Inc. LC_ALL=C ...

  5. 简单工厂设计模式(Simple Factory Design Pattern)

    [引言]最近在Youtub上面看到一个讲解.net设计模式的视频,其中作者的一个理解让我印象很深刻:所谓的设计模式其实就是运用面向对象编程的思想来解决平时代码中的紧耦合,低扩展的问题.另外一点比较有见 ...

  6. textfile 属性

    //设置textfile的Placeholder的颜色和字体大小 nameText.attributedPlaceholder = NSAttributedString.init(string: &q ...

  7. StringBuffer使用append提示String concatenation as argument to 'StringBuffer.append()' call

    昨天发现一个IDE提示: String concatenation as argument to 'StringBuffer.append()' call less... (Ctrl+F1) Repo ...

  8. gulp插件大全

    原文:http://www.mamicode.com/info-detail-517085.html No.1.run-sequence   作用:让gulp任务,可以相互独立,解除任务间的依赖,增强 ...

  9. 防范XSS

    .net framework4.5 提供了AntiXss类,来防范XSS攻击. 在开放指令的同时过滤危险字符串,使用AntiXss.GetSafeHtmlFragment(html)方法,具体可以参照 ...

  10. ios7 实现应用内保真截屏

    CGSize size = self.content.bounds.size; UIGraphicsBeginImageContextWithOptions(size, NO, [UIScreen m ...