【floyed】【HDU1217】【Arbitrage】
题目大意:
给你几种货币,以及几种汇率关系,问是否存在套利的可能?
思路:
初步想法:图上存在一个环的路径上权值相乘大于1....
再者:该如何找到图上所有环呢....
好吧 经过鸟神 和 况神的指点,,,这题就是一道floyed求最小环而已(权重取负)(虽然差不多,其实还是差挺远..)
对于乘法处理转换为ln...Orz一下鸟神
Floyed求最小环(后来才发现没关系)
一开始天真的以为.....只要求一遍Floyed 再判断一下F[i][i]就好,但要记住这个图是带负权值的....所以可能是走过几圈的........
(但其实这个题没有影响,只需要判断最终的结果是否小于0即可,多走几圈,依旧会小于0。。事实上也A了..)
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <cstring>
#include <ctime>
#include <algorithm>
#include <iostream>
#include <sstream>
#include <string>
#include <map>
#define oo 0x13131313
using namespace std;
const double e=2.718281828459;
const int maxn=31;
double F[maxn][maxn];
map<string,int> money;
int n,m; //number of price void Clear()
{
for(int i=0;i<maxn;i++)
for(int j=0;j<maxn;j++)
F[i][j]=2100000000;
money.clear();
}
double ans=2100000000;
void solve()
{
ans=2100000000;
for(int k=1;k<=n;k++)
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
{
if(F[i][k]+F[k][j]<F[i][j])
F[i][j]=F[i][k]+F[k][j];
}
for(int k=1;k<=n;k++)
for(int i=1;i<=n;i++)
{
if(F[i][k]+F[k][i]<F[i][i])
F[i][i]=F[i][k]+F[k][i];
if(F[i][i]<ans) ans=F[i][i];
} }
void input()
{
string a,b;
double c;
for(int i=1;i<=n;i++)
{
cin>>a;
money[a]=i;
}
scanf("%d",&m);
for(int i=1;i<=m;i++)
{
cin>>a>>c>>b;
c=-log(c);
F[money[a]][money[b]]=c;
}
}
void init()
{
freopen("a.in","r",stdin);
freopen("a.out","w",stdout);
}
int main()
{
// init();
int Case=0;
while(cin>>n&&n)
{
Case++;
printf("Case %d: ",Case);
Clear();
input();
solve();
if(ans<0) printf("Yes\n");
else printf("No\n");
}
}
即时这个题不需要。
但还是要搞懂怎么求最小环!!未完待续..。
带负权求不出
【floyed】【HDU1217】【Arbitrage】的更多相关文章
- 【微信小程序开发•系列文章六】生命周期和路由
这篇文章理论的知识比较多一些,都是个人观点,描述有失妥当的地方希望读者指出. [微信小程序开发•系列文章一]入门 [微信小程序开发•系列文章二]视图层 [微信小程序开发•系列文章三]数据层 [微信小程 ...
- WCF学习系列二---【WCF Interview Questions – Part 2 翻译系列】
http://www.topwcftutorials.net/2012/09/wcf-faqs-part2.html WCF Interview Questions – Part 2 This WCF ...
- 【极力分享】[C#/.NET]Entity Framework(EF) Code First 多对多关系的实体增,删,改,查操作全程详细示例【转载自https://segmentfault.com/a/1190000004152660】
[C#/.NET]Entity Framework(EF) Code First 多对多关系的实体增,删,改,查操作全程详细示例 本文我们来学习一下在Entity Framework中使用Cont ...
- SQL Server 解读【已分区索引的特殊指导原则】(3) - 非聚集索引分区
一.前言 在MSDN上看到一篇关于SQL Server 表分区的文档:已分区索引的特殊指导原则,如果你对表分区没有实战经验的话是比较难理解文档里面描述的意思.这里我就里面的一些概念进行讲解,方便大家的 ...
- SQL Server 解读【已分区索引的特殊指导原则】(2)- 唯一索引分区
一.前言 在MSDN上看到一篇关于SQL Server 表分区的文档:已分区索引的特殊指导原则,如果你对表分区没有实战经验的话是比较难理解文档里面描述的意思.这里我就里面的一些概念进行讲解,方便大家的 ...
- WCF学习系列三--【WCF Interview Questions – Part 3 翻译系列】
http://www.topwcftutorials.net/2012/10/wcf-faqs-part3.html WCF Interview Questions – Part 3 This WCF ...
- WCF学习系列四--【WCF Interview Questions – Part 4 翻译系列】
WCF Interview Questions – Part 4 This WCF service tutorial is part-4 in series of WCF Interview Qu ...
- Design Patterns Simplified - Part 2 (Singleton)【设计模式简述--第二部分(单例模式)】
原文链接: http://www.c-sharpcorner.com/UploadFile/19b1bd/design-patterns-simplified-part-2-singleton/ De ...
- 【小白的CFD之旅】13 敲门实例【续3】
接上文[小白的CFD之旅]12 敲门实例[续2] 4 Results4.1 计算监测图形4.2 Graphics4.2.1 壁面温度分布4.2.2 创建截面4.2.3 显示截面物理量4.2.4 Pat ...
- 【资料下载区】【iCore3相关代码、资料下载地址】更新日期2017/1/5
[iCore3 ARM代码下载地址][全部]DEMO1.0测试程序发布例程一:ARM驱动三色LED例程二:读取arm按键状态例程三:EXTI中断输入实验——读取ARM按键状态例程四:USART通信实验 ...
随机推荐
- IOS 定位 单例
+ (SCLocationController *)sharedController { static SCLocationController *sharedController = nil; st ...
- freemarker声明变量
freemarker声明变量 1.使用assign创建和替换变量 (1)新建声明变量的ftl variable.ftl: <html> <head> <meta http ...
- Sublime Text 添加到右键菜单 带菜单图标
1.打开 regedit 2.找到节点 HKEY_CLASSSES_ROOT -> * -> Shell 3.右键选择新建“ 项 ” 这个项的名字将作为右键菜单的菜单名称,我用的“ Sub ...
- 使用 Camtasia Recorder显示 “ camtasia an error occurred in the recorder: video codec open failed ”
这是因为本机没有codec的缘故,可以下载一个:tscc解码器(TechSmith Screen Capture Codec) 2.0.3.0 安装版 http://www.cngr.cn/dir/2 ...
- Android app去应用市场评分功能
因为android市场很多,去各个应用市场评分的功能却不是很难实现. private void gotoRate(){ Uri uri = Uri.parse("market://detai ...
- Win7窗口操作
1.使用 Aero Shake 晃动最小化打开的窗口您可以使用 Aero Shake 晃动将所有打开的窗口快速最小化,只剩下您需要使用的窗口.然后,还可以轻松还原所有窗口.操作方法如下:1. 在需要保 ...
- win10下安装通过Hyper-v安装Ubuntu
一直也来在做C#的开发,Winform及Web都有所涉及,想在闲暇之余学习下Python,拓展一下自己的知识.既然决定学习Python那么就直接在Linux下进行吧,由于Ubuntu最近很火而且也有方 ...
- 使用ICE进程间通信时,IP和端口的选择
使用ICE进程间通信时,IP和端口的选择 服务器在创建时使用的Endpint格式为 tcp -h IP地址 -p 端口 1.IP地址的选择 如果填某个网卡的地址,则只在这个地址上监听,客户端必须连这 ...
- Windows上Python3.5安装Scrapy(lxml)
常用网址: Python 3.5: https://www.python.org/downloads/ Wheel文件:http://www.lfd.uci.edu/~gohlke/pythonlib ...
- 复习篇(一)Activity的生命周期和启动模式
(一)关于<intent-filter>中的<data> 当设置<data>过滤器的时候,使用intent的时候必须要设置响应的匹配,否则无法匹配成功.不过不设置则 ...