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 ...
随机推荐
- 三、内存管理单元---MMU
3.1 MMU介绍 3.1.1 MMU 特性 内存管理单元(Memory Management Unit)简称MMU,它负责虚拟地址到物理地址的映射,并提供硬件机制的内存访问权限检查.现在的多用户多进 ...
- Linux - 网络检测
linux 利用bmon/nload/iftop/vnstat/iptraf实时查看网络带宽状况 .添加yum源方便安装bmon # rpm -Uhv http://apt.sw.be/redhat/ ...
- NOIP2018 前流水账
不务正业系列 学习yyb,zsy,ljq,mona等大佬而写的 \(qwq\) 不知道前言写些什么 \(qwq\) 尽量日更好吧 \(qwq\) \(upd:\)日更是不可能日更的,这辈子不可能的 \ ...
- yo install generator-gulp-react遇到UNMET PEER DEPENDENCY问题
最近在用yeoman下载下来的框架配置react环境 yo install generator-gulp-react安装框架包 遇到了 UNMET PEER DEPENDENCY问题 找不到依赖的gu ...
- 第三周结对项目--小学生四则运算CAI软件汇报及总结(UI/web)
前言: 这周是和我队友苏卫喜一起结对开发,我主要是写项目文档需求分析,她是通过我的需求文档来进行做思维导图,之后我们通过思维导图一起讨论用户界面设计. 以下就是我的需求分析1.0版本 1. 软件名 ...
- hashMap之jdk1.7和jdk1.8
参考链接: http://allenwu.itscoder.com/hashmap-analyse https://tech.meituan.com/java-hashmap.html
- Junit的Assert用法
package junit.framework; /** * A set of assert methods. Messages are only displayed when an assert f ...
- linux查看操作系统的版本
内核信息 uname -a localhost.localdomain:所在主机的主机名,与主机配置文件/etc/hosts内容一致 2.4.20-8#1:内核版本号 Thu Mar 13 17:18 ...
- Debian 无线网卡驱动问题
参考这里:https://wiki.debian.org/iwlwifi Debian 9 "Stretch" Add a "non-free" compone ...
- Check Box、Radio Button、Combo Box控件使用
Check Box.Radio Button.Combo Box控件使用 使用控件的方法 1.拖动控件到对话框 2. 定义控件对应的变量(值变量或者控件变量) 3.响应控件各种消息 Check Box ...