当前位置: 首页 > article >正文

699: Arbitrage

解法:

初始化二维汇率图

经过 Floyd-Warshall 算法后,二维数组会被更新为所有货币对之间的最大汇率路径。如果存在 g[i][i] > 1,则表示存在套汇。

#include <iostream>
#include <vector>
#include <algorithm>
#include <map>
using namespace std;
const int N = 1e3;
double g[N][N];
int main() {
	int n, m, cnt = 1;
	while (cin >> n, n) {
		for (int i = 0; i < n; i++) {
			for (int j = 0; j < n; j++) {
				g[i][j] = 0;
			}
		}
		string s1, s2;
		map<string, int> mp;
		for (int i = 0; i < n; i++) {
			cin >> s1;
			mp[s1] = i;
		}
		cin >> m;
		for (int i = 0; i < m; i++) {
			double x;
			cin >> s1 >> x >> s2;
			g[mp[s1]][mp[s2]] = x;
		}
		for (int k = 0; k < n; k++) {
			for (int i = 0; i < n; i++) {
				for (int j = 0; j < n; j++) {
					g[i][j] = max(g[i][j], g[i][k] * g[k][j]);
				}
			}
		}
		int flag = 0;
		for (int i = 0; i < n; i++) {
			if (g[i][i] > 1) {
				flag = 1;
				break;
			}
		}
		cout << "Case " << cnt << " " << (flag ? "Yes" : "No") << endl;
		cnt++;
	}
	return 0;
}


http://www.kler.cn/a/464083.html

相关文章:

  • Wend看源码-Java-fork/Join并行执行任务框架学习
  • 数据挖掘入门介绍及代码实战
  • 数据结构与算法之动态规划: LeetCode 213. 打家劫舍 II (Ts版)
  • Unity3D 基于GraphView实现的节点编辑器框架详解
  • 用uniapp写一个播放视频首页页面代码
  • 2024/12/29 黄冈师范学院计算机学院网络工程《路由期末复习作业一》
  • 小组作业协同介绍
  • 代码随想录算法训练营第51期第32天 | 理论基础、509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯
  • 基于Python的携程旅游景点数据分析与可视化
  • 【C++指针】知识点思维导图
  • 大语言模型提示技巧(二)-给模型时间思考
  • Unity2022接入Google广告与支付SDK、导出工程到Android Studio使用JDK17进行打包完整流程与过程中的相关错误及处理经验总结
  • 【开源免费】基于SpringBoot+Vue.JS音乐网站(JAVA毕业设计)
  • pdf预览 报:Failed to load module script
  • 信息搜集250102
  • 家政服务管理系统|Java|SSM|VUE| 前后端分离
  • 分布式 L2 网关下的 OVS 未知单播泛洪
  • 【设计模式】 基本原则、设计模式分类
  • 【安卓开发】【Android Studio】项目构建失败提示【Could not read metadata.bin】解决方法
  • 2025年,测试技能支棱起来。
  • 每天40分玩转Django:Django安全专题
  • 【GIT(命令)基础操作笔记--关于本地仓库】
  • Kafka系列教程 - Kafka 消费者 -3
  • 数据挖掘——朴素贝叶斯分类
  • 滑动窗口——将x减到0的最小的操作数
  • 长时间序列预测算法---Informer