( ̄▽ ̄)"

#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. [UWP小白日记-7]转换MVA学院的XML字幕为SRT (二)

    瞎扯淡 上个版本,非常蠢用来N多的循环导致非常卡性能烂得不行,这次使用XmlDocument类来读取XML字幕 其实根本不用各种扒XML字幕,好吧我这是学习使用XmlDocument类,嗯就是这个样子 ...

  2. eclipse中svn提交过滤不需要的文件

    eclipse>Preference>Team>Ignored Resource 添加   .settings   .classpath   .project

  3. java中常遇到的问题

    一.乱码问题 =========================================================================================== 方 ...

  4. Redis安装(CentOS7/tar.gz)

    1. 将安装包redis-3.2.0.tar.gz上传到linux系统,位置随意. 2. 解压文件 .tar.gz 3. 解压后会在当前目录生成文件夹“redis-3.2.0”,将其拷贝到" ...

  5. 一些常用的操作MySQL数据库的sql语句

    创建数据库:create database 数据库名; 删除数据库:drop datebase 数据库名; 查看数据库:show databases;(所有数据库) 使用数据库:use 数据库名;(之 ...

  6. 傲梅分区助手专业版 v6.2 中文免费版

    软件名称: 傲梅分区助手专业版 软件语言: 简体中文 授权方式: 免费软件 运行环境: Win7 / Vista / Win2003 / WinXP / Win2008 软件大小: 9.1MB 图片预 ...

  7. sublime文字处理技巧

    1.针对多行文本去除重复行,而不改变文本原来的顺序,即不通过排序的方式移除重复行 安装ShellCommand插件,全选文本,ctrl+alt+|调出shell执行终端,输入 awk '!x[$0]+ ...

  8. HTML,CSS,JS,JQ

    CSS: <style> <!--属性选择器--> .container input[type="text"][name="txt"]{ ...

  9. HDU 4403 A very hard Aoshu problem

    暴力$dfs$. 先看数据范围,字符串最长只有$15$,也就是说枚举每个字符后面是否放置“$+$”号的复杂度为${2^{15}}$. 每次枚举到一种情况,看哪些位置能放“$=$”号,每个位置都试一下, ...

  10. VIP站长大会(北京站)常见问题解答

    功能支持问题 1. react能否和MIP结合使用,如果暂时不能以后是否有考虑?是否会和其他 js 框架(比如angular )结合? 目前暂无计划支持. 2. MIP页是否支持自定义cookie?实 ...