POJ-2240 -Arbitrage(Bellman)
题目链接:Arbitrage
让这题坑了,精度损失的厉害。用赋值的话。直接所有变成0.00了,无奈下,我仅仅好往里输了,和POJ1860一样找正环,代码也差点儿相同,略微改改就能够了,可是这个题精度损失的比那个。
。。。
水过
POJ计划的最短路模块,刷完了,最短路问题,挺坑的,可是就是那点东西,变来变去,就是改改dis[]的更新条件。
明天就要開始POJ的最小生成树了,
ME TI
704Kb 46Ms
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <algorithm>
using namespace std;
const int N = 50;
const int M = 1010;
char a[N][N],s[N];
double dis[N];
int n,m,num;
struct node{
int u,v;
double w;
}edge[M];
int Bellman(int x)
{ dis[x] = 1.0;//開始时漏了,结果都打NO
for(int i = 0;i <n;i++)
{
for(int j = 0;j < num; j++)
{
if(dis[edge[j].v] < dis[edge[j].u] * edge[j].w)
dis[edge[j].v] = dis[edge[j].u] * edge[j].w;
}
}
for(int i = 0;i<num;i++)
{
if(dis[edge[i].v] < dis[edge[i].u]*edge[i].w)
return 1;
}
return 0; }
int main()
{
int c;
c = 0;
while(scanf("%d",&n),n)
{
c++;
for(int i = 0;i <n;i++)
dis[i] = 0; for(int i = 0;i <n;i ++)
scanf("%s",a[i]); scanf("%d",&m);
num = 0;
while(m--)
{
scanf("%s",s);
for(int i = 0;i <n;i++)
{
if(strcmp(s,a[i])== 0)
{
edge[num].u = i;
break;
}
}
scanf("%lf",&edge[num].w);
scanf("%s",s);
for(int i = 0;i <n;i++)
{
if(strcmp(s,a[i]) == 0)
{
edge[num++].v = i;
break;
}
}
}
int st;
for(int i = 0;i<n;i++)//挨个枚举,找正环
{
st = Bellman(i);
if(st)
break;
}
printf("Case %d: ",c);
if(st)
puts("Yes");
else
puts("No");
}
return 0;
}
POJ-2240 -Arbitrage(Bellman)的更多相关文章
- 最短路(Floyd_Warshall) POJ 2240 Arbitrage
题目传送门 /* 最短路:Floyd模板题 只要把+改为*就ok了,热闹后判断d[i][i]是否大于1 文件输入的ONLINE_JUDGE少写了个_,WA了N遍:) */ #include <c ...
- POJ 2240 Arbitrage / ZOJ 1092 Arbitrage / HDU 1217 Arbitrage / SPOJ Arbitrage(图论,环)
POJ 2240 Arbitrage / ZOJ 1092 Arbitrage / HDU 1217 Arbitrage / SPOJ Arbitrage(图论,环) Description Arbi ...
- poj 2240 Arbitrage 题解
Arbitrage Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 21300 Accepted: 9079 Descri ...
- poj 2240 Arbitrage (Floyd)
链接:poj 2240 题意:首先给出N中货币,然后给出了这N种货币之间的兑换的兑换率. 如 USDollar 0.5 BritishPound 表示 :1 USDollar兑换成0.5 Britis ...
- POJ 2240 Arbitrage (Bellman Ford判正环)
Arbitrage Time Limit: 1000MS Memory Limit: 65536K Total Submissions:27167 Accepted: 11440 Descri ...
- POJ 2240 Arbitrage【Bellman_ford坑】
链接: http://poj.org/problem?id=2240 http://acm.hust.edu.cn/vjudge/contest/view.action?cid=22010#probl ...
- POJ 2240 Arbitrage(判正环)
http://poj.org/problem?id=2240 题意:货币兑换,判断最否是否能获利. 思路:又是货币兑换题,Belloman-ford和floyd算法都可以的. #include< ...
- poj 2240 Arbitrage
Time Limit: 1000 MS Memory Limit: 65536 KB 64-bit integer IO format: %I64d , %I64u Java class name ...
- poj 2240 Arbitrage bellman-ford算法
点击打开链接 Arbitrage Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 13434 Accepted: 5657 ...
- POJ 2240 Arbitrage(floyd)
http://poj.org/problem?id=2240 题意 : 好吧,又是一个换钱的题:套利是利用货币汇率的差异进行的货币转换,例如用1美元购买0.5英镑,1英镑可以购买10法郎,一法郎可以购 ...
随机推荐
- EBS ORACLE采购对账单自动产生发票
只要传入个对账单号,然后跑数据抛到接口表,运行接口请求,就可以自动生成发票 create or replace package body pkg_ap_check_by_po is --创建ap发票 ...
- pm2 start命令进阶详解
在node的世界里面,并不存在nginx或者apache,甚至tomcat这种东东.一个node,本身就用几行代码,就可以启动个server进程,监听个端口,为大家提供web服务.这和传统的网站代码的 ...
- ios operationqueue
http://www.hrchen.com/2013/06/multi-threading-programming-of-ios-part-2/
- NodeJs运行服务器-day01
//读取内置模块http,这个模块开发服务器用的var http =require('http'); var server=http.createServer(function(req,res){ r ...
- XML 解析 & 特殊字符报错
在xml文件中,有一些符号是具有特殊意义的,如果直接使用会导致xml解析报错,为了避免错误,我们需要将特殊的字符使用其对应的转义实体进行操作.这些字符如下 < == < > = ...
- php微信公众号开发之快递查询
[文章来源:脚本之家 文章地址:https://www.jb51.net/article/149205.htm] 本文实例为大家分享了php微信公众号开发之快递查询的具体代码,供大家参考,具体内容 ...
- mysql恢复数据
1.崩溃恢复: 突然断电.宕机,导致mysql无法正常启动: (1) 关闭数据库. (2) Vim /etc/my.cnf 添加:innodb_force_recovery=1 默认为0. 1( ...
- Druid配置
spring-mybatis.xml <!-- 定义数据源Bean --> <!-- Druid --> <bean id="dataSource" ...
- python常用函数 C
1. Counter(hashable) 直接使用统计可哈希元素每个元素的数量. 2. most_common:可以统计数量最多的n个元素. from collections import Count ...
- CSS选择器定位的使用
CSS 可以比较灵活选择控件的任意属性,一般情况下定位速度要比XPath 快,但对于初学者来说比较难以学习使用,下面我们就详细的介绍CSS 的语法与使用.一.CSS 选择器的常见语法: 例如下面一段代 ...