Arbitrage HDU1217
汇率转换问题: 怎么样才能套利
可以用Floyd算法:
#include<bits/stdc++.h>
using namespace std; double m1[][];
int main()
{
int n,m;
map<string,int>ma;int cas=;
while(scanf("%d",&n)==,n)
{
string ss;
for(int i=;i<=n;i++)
{
cin>>ss;
ma[ss]=i; } string s1,s2;double rate;
for(int i=;i<=n;i++)
for(int j=;j<=n;j++)
{
if(i==j)m1[i][j]=;
else m1[i][j]=; }
scanf("%d",&m);
for(int i=;i<=m;i++)
{
cin>>s1>>rate>>s2;
m1[ ma[s1] ][ ma[s2] ]=rate;
} for(int i=;i<=n;i++)
for(int j=;j<=n;j++)
for(int k=;k<=n;k++)
{
if(m1[j][k]<m1[j][i]*m1[i][k])
m1[j][k]=m1[j][i]*m1[i][k]; }
int ok=;
for(int i=;i<=n;i++)
if(m1[i][i]>){ok=;break;} printf("Case %d: %s\n",cas++,ok?"Yes":"No"); } return ;
}
string用cin输入 cin和scanf都会自动略过空格和空行
spfa算法
#include <stdio.h>
#include <iostream>
#include <cstring>
#include <map>
#include <queue>
#include <algorithm>
using namespace std; const int L = ;
const double inf = ;
map<string,int> mat;
int n,m;
char str[],s1[],s2[];
double trip[][],dis[]; int SPFA(int src)
{
queue<int> Q;
int vis[],i;
int num[];
for(i = ; i<=n; i++)
vis[i] = dis[i] = num[i] = ;
while(!Q.empty())
Q.pop();
dis[src] = 1.0;
vis[src] = ;
Q.push(src);
while(!Q.empty())
{
int now = Q.front();
Q.pop();
vis[now] = ;
for(i = ; i<=n; i++)
{
if(dis[now]*trip[now][i]>dis[i])
{
dis[i] = dis[now]*trip[now][i];
if(dis[src]>1.0)
return ;
if(!vis[i])
{
vis[i] = ;
Q.push(i);
}
}
}
}
return ;
} int main()
{
int i,j,cas = ;
double w;
while(~scanf("%d",&n),n)
{
mat.clear();
for(i = ; i<=n; i++)
for(j = ; j<=n; j++)
trip[i][j] = (i==j)?1.0:;
for(i = ; i<=n; i++)
{
scanf("%s",str);
mat[str] = i;
}
scanf("%d",&m);
while(m--)
{
scanf("%s%lf%s",s1,&w,s2);
trip[mat[s1]][mat[s2]] = w;
}
int flag = ;
for(i = ; i<=n; i++)
{
if(SPFA(i))
{
flag = ;
break;
}
}
printf("Case %d: %s\n",cas++,flag?"Yes":"No");
} return ;
}
Arbitrage HDU1217的更多相关文章
- hdu1217 Arbitrage
Problem Description Arbitrage is the use of discrepancies in currency exchange rates to transform on ...
- 【floyed】【HDU1217】【Arbitrage】
题目大意: 给你几种货币,以及几种汇率关系,问是否存在套利的可能? 思路: 初步想法:图上存在一个环的路径上权值相乘大于1.... 再者:该如何找到图上所有环呢.... 好吧 经过鸟神 和 况神的指点 ...
- HDU1217:Arbitrage(SPFA)
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1217 题目大意 在每种钱币间进行各种交换,最后换回自己如果能赚,那么就Yes,否则No 注意应为有负权 ...
- 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
Time Limit: 1000 MS Memory Limit: 65536 KB 64-bit integer IO format: %I64d , %I64u Java class name ...
- UVa 104 - Arbitrage(Floyd动态规划)
题目来源:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=3&pa ...
- Arbitrage(bellman_ford)
Arbitrage Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 16652 Accepted: 7004 Descri ...
- 最短路(Floyd_Warshall) POJ 2240 Arbitrage
题目传送门 /* 最短路:Floyd模板题 只要把+改为*就ok了,热闹后判断d[i][i]是否大于1 文件输入的ONLINE_JUDGE少写了个_,WA了N遍:) */ #include <c ...
- poj-------(2240)Arbitrage(最短路)
Arbitrage Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 15640 Accepted: 6563 Descri ...
随机推荐
- matplotlib-2D绘图库
安装 python -m pip install matplotlib 允许中文: 使用matplotlib的字体管理器指定字体文件 plt.rcParams['font.sans-serif'] ...
- QPushButton按钮
需要 from PyQt5.QtWidgets import QPushButton继承 QAbstractButton 创建按钮控件:QPushButton() 创建一个无父控件的按钮控件QPush ...
- POJ2516 Minimum Cost【最小费用最大流】
题意: 有N个客户,M个仓库,和K种货物.已知每个客户需要每种货物的数量,每个仓库存储每种货物的数量,每个仓库运输各种货物去各个客户的单位费用.判断所有的仓库能否满足所有客户的需求,如果可以,求出最少 ...
- jquery中选择checkbox拼接成字符串,然后到后台拆分取值
jquery中选择checkbox拼接成字符串,然后到后台拆分取值 js中的代码 $("#btn").click(function(){ var chenked=$("i ...
- winform程序生成条形码并且并且保存到本地文件中。
今天公司让做一个输入数字.字母生成条形码并且可以以图片格式保存到本地.当看到这个需求时候感觉很搞笑,明明可以用文本框搞定的东西非得做个程序.哎,寄人篱下,不多说了,这就是养兵千日用兵一时. 我在网上找 ...
- CentOS 6.8 部署django项目二
CentOS 6.8 部署django项目一 1.项目部署后发现部分页面的样式丢失,是因为在nginx中配置的static路径中未包含. 解决:在settinfs.py中添加: STATIC_ROOT ...
- SpringBoot注册Servlet、Filter、Listener
SpringBoot默认是以jar包的方式启动嵌入式的Servlet容易来启动SpringBoot的Web应用,没有web.xml文件 因此我们可以使用以下方式来注册Servlet.Filter.Li ...
- Python算法:推导、递归和规约
Python算法:推导.递归和规约 注:本节中我给定下面三个重要词汇的中文翻译分别是:Induction(推导).Recursion(递归)和Reduction(规约) 本节主要介绍算法设计的三个核心 ...
- 生成ansible-playbook的yaml文件的代码(字典排序问题无法解决)
import yaml import collections def add_task(): return None def add_vars(): return None def add_handl ...
- 一步步实现windows版ijkplayer系列文章之二——Ijkplayer播放器源码分析之音视频输出——视频篇
一步步实现windows版ijkplayer系列文章之一--Windows10平台编译ffmpeg 4.0.2,生成ffplay 一步步实现windows版ijkplayer系列文章之二--Ijkpl ...