千里独行Thousands of miles to ride alone

2023-05-16

关于三国时期有很多流行的故事。 其中最著名的就是千里独行。 关羽保护二嫂,从徐都出发,经过五门,斩六将,终于在古城与刘备、张飞两兄弟重逢。 现在,你的任务是为关羽找到跑得比兔子还快的兄弟们的新路线。 假设关羽知道从徐渡到古城的所有道路,以及每道门都能安全通过的概率。 请帮助关羽找到一条概率最大的有效路线。 请注意,每个门最多只能通过一次。
There are many popular stories about the Three Kingdoms period. The most famous of which is thousands of miles to ride alone. Guan Yu protected the two sister-in-law, starting from Xu du, passed five gates, chopped six generals, and reunited finally with the two brothers Liu Bei and Zhang Fei in an ancient city. Now, your task is to find a new route for Guan Yu to find his brothers who runs faster than the rabbit. It is assumed that Guan Yu knows all the roads from Xu Du to the ancient city and the probability that each gate will be passed safely. Please help Guan Yu find a valid route with maximum probability. Note that each gate can pass at most once.

Input:

The first row is an integer T (1 <= T <= 10), whici is the number of tests.

For each test, the first row is an integer N (3 <= N <= 1000). The following N rows is a matrix,indicate the roads between the N-2 gates from Xu du to the ancient city. If it is 1 at the ith row the jth column, then there is one road from i to j, if it is 0, then there are no road from i to j. The last row of each test has N-2 real number, P (0 <= P <= 1), which is the probabilities for Guan Yu to pass the gate.

Output

The maximum probability for Guan Yu to starting from Xu Du and arriving the ancient city, accurate to 4 decimal places. If the probability is less than 0.0001, then output “ Cannot reach! ”.
测试输入:
1
5
0 1 0 1 0
0 0 1 0 0
0 0 0 1 1
0 0 0 0 1
0 0 0 0 0
0.5 0.6 0.1
输出:
Case 1: 0.3000

#include<bits/stdc++.h>
using namespace std;
//最短路径算法--dijkstra算法 
int n;
int matrix[1001][1001];
double pro[1000],c[1001][1001];
double r,lastPro[1001],maxx[1001];	//lastPro记录到第k个门的最大概率,maxx通过比较找到第K个门的最大概率,传递给lastPro 
bool s[1001];		//用于记录初始到点i是否有路径 
		
int main()
{ 	
	int t;
	cin>>t;
	for(int i=1;i<=t;i++)
	{
		
		cin>>n;
		for(int j=1;j<=n;j++)
		{
			maxx[j]=0.0; lastPro[j]=0.0; pro[j]=0.0; s[j]=0;	//归0 
			for(int k=1;k<=n;k++)
			{
				c[j][k] =1.1;	matrix[j][k]=0;		//归0 
				cin>>matrix[j][k];
			}
		}
		for(int j=2;j<n;j++) 	cin>>pro[j];
		pro[1]=1.0;pro[n]=1.0;//每个门的概率 
		
		for(int j=1;j<n;j++)
		{	
			for(int k=j+1;k<=n;k++)
			{
				if(matrix[j][k]==1)
				{
					if(k<n)		c[j][k]=pro[k];	
					else 		c[j][k]=1;		//直接到最后一个门不再乘概率 
					if(j==1)	lastPro[k]=pro[k];		//记录原点能直接到达的门 
				}
			}
		}
		
		int u;
		s[1]=1;	lastPro[1]=1.0;		//将原点记录进去
		for(int j=1;j<=n;j++)
		{
			double temp=0.0;	//每次循环前归零temp 
			for(int k=1;k<=n;k++)
			{
				if(lastPro[k]>temp&&s[k]==0)
				{
					u=k;			
					temp=lastPro[k];
				}
			}
			s[u]=1;		//把距离原点概率最大的记录进去 
			
			for(int k=1;k<=n;k++)
			{
				if(s[k]==0&&c[u][k]<=1)
				{
					r=lastPro[u]*c[u][k];
					if(r>maxx[k])
					{
						maxx[k]=r;		//maxx通过比较找到第K个门的最大概率,传递给lastPro
						lastPro[k]=maxx[k];	//lastPro记录到第k个门的最大概率					
					}	
				}	
			}
		}
		cout<<"Case "<<i<<": ";
		if(lastPro[n]<0.0001) cout<<"Cannot reach!"<<endl;
		else  cout<<fixed<<setprecision(4)<<lastPro[n]<<endl;
	}
	return 0;
} 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

千里独行Thousands of miles to ride alone 的相关文章

  • Intel Realsense D455深度相机的标定及使用(二)——对内置IMU和双目相机进行标定

    标定前需先安装librealsense SDK2 0以及realsense ros xff0c 可参考教程 xff1a Intel Realsense D455深度相机的标定及使用 xff08 一 xff09 安装librealsense
  • 五、ROS学习之订阅T265里程计数据并与stm32通信

    使用ROS读出T265里程计数据 通过节点订阅t265的里程计数据1 订阅T265的里程计信息2 实现linux系统与stm32通信 xff0c 并向stm32发送里程计信息 通过节点订阅t265的里程计数据 我使用的是Kinetic版本
  • 在js文件中调用vue组件

    正常的书写一个vue组件 lt template gt lt div class 61 34 34 gt lt div gt lt template gt lt script gt export default name 39 Subscr
  • BMP180气压传感器详解与示例(STM32 附带源码)

    BMP180气压传感器详解与示例 xff08 STM32 附带源码 xff09 简介工作模式校准数值测试流程第一步 xff1a 微处理器读取校准数值第二步 xff1a 读取温度 气压初始值第三步 xff1a 计算温度 气压第四步 xff1a
  • MAX30102脉搏血氧仪和心率传感器(三)心率计算——时域法

    文章目录 前言一 算法思想二 算法详解1 阈值检测2 等待波形稳定3 FIR滤波 存入缓存区4 检测PPG信号与阈值曲线的交点5 心率计算 三 实际测试1 静止测试2 动态测试 四 总结五 获取工程源码 前言 本章介绍PPG信号的心率计算方
  • 基于51单片机的指纹密码锁设计

    目录 具体实现功能 设计介绍 单片机介绍 设计思路 资料内容 原理图 程序 仿真实现 全部资料 具体实现功能 具体功能 xff1a 本设计采用STC89C52 AT89C52 AT89S52作为主控芯片 xff0c LCD12864液晶显示
  • 基于51单片机的智能台灯设计

    具体实现功能 系统由STC89C52单片机 43 L数码管 43 光敏电阻 43 人体感应模块 43 红外接近传感器模块构成 具体功能 xff1a xff08 1 xff09 亮度不够且有人靠近时台灯自动亮 xff1b xff08 2 xf
  • pyharm快捷键说明

    官方文档 xff1a pycharm gt gt Help gt gt Keymap Reference 1 编辑 xff08 Editing xff09 Ctrl 43 Space 基本的代码完成 xff08 类 方法 属性 xff09
  • 基于51单片机超声波液位控制器设计

    具体实现功能 系统由AT89C52单片机 43 HC SR04超声波测距模块 43 LCD1602液晶屏 43 继电器 43 LED灯指示及蜂鸣器报警模块 43 按键模块 43 电源构成 具体功能 xff1a 1 由HC SR04超声波测距
  • 基于51单片机的电子密码锁设计

    目录 具体实现功能 设计背景 硬件设计 软件设计 原理图 程序 仿真实现 全部资料 具体实现功能 系统由AT89S52单片机 43 AT24C02数据存储模块 43 按键模块 43 LCD1602显示 43 报警模块等构成 具体功能 1 输
  • 基于51单片机智能热水器控制系统

    具体实现功能 系统由STC89C52单片机 43 水位检测传感器 43 DS18B20温度探头传感器 43 按键模块 43 继电器模块 43 报警及指示模块 43 LCD1602显示模块 43 电源构成 具体功能 xff1a 1 LCD16
  • 基于51单片机的火灾报警器

    具体实现功能 系统由51单片机 43 MQ 2烟雾传感 43 ADC0832模数转换芯片 43 DS18B20温度传感器 43 数码管显示 43 按键模块 43 声光报警模块构成 具体功能 xff1a 1 实时监测及显示温度值和烟雾浓度 x
  • 基于51单片机的步进电机控制系统

    具体实现功能 系统由STC89C52单片机 43 单体数码管 43 LED指示灯 43 ULN2003驱动芯片 43 DC 5V步进电机构成 具体功能 xff1a xff08 1 xff09 实现按键控制步进电机正转 反转 加速 减速 停止
  • 基于51单片机的数字时钟(万年历)

    具体实现功能 系统由STC89C52单片机 43 DS1302时钟芯片 43 按键模块 43 LCD1602显示 43 电源构成 具体功能 xff1a 1 可以显示年 月 日 时 分 秒 星期 农历 xff1b 2 按键可以设置闹钟及报警
  • 基于51单片机的排队叫号系统

    具体实现功能 系统由STC89C52单片机 43 按键模块 43 LCD1602液晶屏 43 蜂鸣器呼叫模块 43 电源构成 具体功能 xff1a 1 主机通过按键完成叫号 xff0c LCD1602液晶显示屏显示被叫的号码及服务的柜台号
  • 仿真设计|基于51单片机的简易抢答器

    目录 前言 具体实现功能 设计介绍 51单片机简介 设计方案 资料内容 仿真实现 xff08 protues8 7 xff09 程序 xff08 Keil5 xff09 全部资料 xff08 压缩文件 xff09 前言 全部资料包括程序 K
  • 实物设计|基于51单片机的温湿度检测报警系统

    目录 具体实现功能 xff1a 设计介绍 51单片机简介 设计方案 资料内容 原理图和PCB xff08 AD19 xff09 仿真实现 xff08 protues8 7 xff09 程序 xff08 Keil5 xff09 全部资料 xf
  • 设计分享|74LS148实现按键控制LED灯

    目录 具体实现功能 xff1a 设计介绍 51单片机简介 设计思路 设计内容 仿真图 xff08 protues8 7 xff09 程序 xff08 Keil5 xff09 具体实现功能 xff1a 74LS148实现按键控制LED灯 设计
  • 版本控制工具GIT and SVN 命令对比

    Git 安装 Debian Ubuntu OS Apt get install libcur14 gnutls dev libexppat1 dev gettext libz dev libssl dev Apt get install g
  • SUMO仿真教程(1) ——安装环境的设置(Windows 10系统)

    SUMO安装环境的设置 目录 一 SUMO下载的官方网址二 下载步骤 xff1a 三 环境设置 xff1a 1 打开设置环境变量的界面2 用户 xff08 Administrator xff09 变量设置3 系统变量设置 四 总述 一 SU

随机推荐

  • SUMO仿真教程(3)—— 仿真运行(net file、rou file、sumocfg file)

    文章目录 一 基本介绍 xff1a 1 简述 xff1a 二 文件说明 xff1a 1 路网文件 net xml 2 自定义编写路由文件 rou xml xff1a 3 生成运行仿真文件 sumocfg xff1a 4 进行运行仿真 xff
  • SUMO仿真教程(5) —— 使用“XML“语言自定义构建路网

    文章目录 一 简要介绍1 node file2 edge file3 lane definitions xff08 1 xff09 路段细分 xff08 2 xff09 邻近的对向车道 xff08 3 xff09 删除边或车道 4 type
  • SUMO仿真教程(7)—— 交通需求模型介绍

    文章目录 一 简要介绍 xff1a 二 方式一 xff1a 使用行程定义三 方式二 xff1a 使用交通流定义四 方式三 xff1a 使用随机流定义五 方式四 xff1a 使用OD矩阵定义六 方式五 xff1a 使用交叉口流量和转向比定义七
  • STM32 + UCOSII 操作系统(简单讲解)

    前言 这是我将UCOSII操作系统移植在STM32单片机上后进行UCOSII操作系统学习的一些笔记与理解 xff0c 此文最后会附上我自己在UCOSII操作系统下使用STM32写的ESP8266 43 onenet 43 http协议的程序
  • 地下水监测用设备 5G无线数传终端DTU

    地下水监测用设备5G无线数传终端DTU xff0c 实现地下水水位 温度 电导率 水质 孔隙压力等数据传输入库 远程采集 远程监测 曲线及报表可视化管理 地下水监测用5G无线数传终端DTU功能配置 地下水监测用5G无线数传终端负责连接前端采
  • 图解进程线程、互斥锁与信号量-看完不懂你来打我

    在上学的时候 xff0c 老师讲到进程与线程的时候可能是这样讲的 xff1a 进程是一个具有一定独立功能的程序在一个数据集上的一次动态执行的过程 xff0c 是操作系统进行资源分配和调度的一个独立单元 xff0c 是应用程序运行的载体 线程
  • MySQL最左匹配原则,道儿上兄弟都得知道的原则

    自MySQL5 5版本起 xff0c 主流的索引结构转为B 43 树 B 43 树的节点存储索引顺序是从左向右存储 xff0c 在检索匹配的时候也要满足自左向右匹配 目录 一 最左匹配原则的原理二 违背最左原则导致索引失效的情况三 查询优化
  • 在STM32下完成基于FreeRTOS的多任务简单程序

    一 为什么要学习 RTOS 在裸机系统中 xff0c 所有的程序基本都是自己写的 xff0c 所有的操作都是在一个无限的大循环里面实现 现实生活中的很多中小型的电子产品用的都是裸机系统 xff0c 而且也能够满足需求 但是为什么还要学习 R
  • 虚拟机连不上网问题及解决

    虚拟机联网主要涉及四个方面的配合 xff1a 网络和共享中心 xff08 物理机 xff09 虚拟网络编辑器 网络适配器 有线连接的更多设置 xff08 相关配置文件 xff09 网络和共享中心 xff1a 提示 xff1a 需要注意的点是
  • linux命令查看系统硬件的版本(dmidecode)

    dmidecode命令 可以让你在Linux系统下获取有关硬件方面的信息 dmidecode的作用是将DMI数据库中的信息解码 xff0c 以可读的文本方式显示 由于DMI信息可以人为修改 xff0c 因此里面的信息不一定是系统准确的信息
  • git 设置代理和取消代理

    本地开启VPN后 xff0c GIt也需要设置代理 xff0c 才能正常略过GFW xff0c 访问goole code等网站 设置如下 xff08 可复制 xff09 xff1a git config global https proxy
  • 上下文切换理解

    1 上下文的理解 上下文是指 xff0c 每次执行前 xff0c 都会使用需要依赖两个环境 xff0c 分别是CPU寄存器 xff08 cpu中容量小但是速度很快的内存 xff09 和程序计数器 xff08 cpu正在执行的程序位置或者是准
  • debian-11版本虚拟机无法登入root账号

    debian11创建虚拟机时我们设置了root账户密码 xff0c 然而在登入时却在未列出中无法登入root账户 xff0c 如图 1 我们登入普通账号 xff0c 这里不提权是无法保存文件的 enter 输入 i 进入编辑模式 在这个位置
  • 整数加减运算的二进制表示

    两位整数的加减都可看做 一个数加上另一个数 xff0c 首先我们要把数据的二进制表示转化成补码 xff0c 因为在计算机内部 xff0c 数据的加减是按补码进行运算的 A补 43 B补 61 A 43 B 补 xff08 mod 2 n 4
  • TCP服务器端、客户端通讯(赋源码)

    实现通讯 xff0c 我们首先要知道是怎么样的一个流程 xff0c 下图是我画的一个通讯流程图 xff1a 一 Linux服务器端 我是在Ubuntu20 04下进行的 xff0c 使用的是C 43 43 xff0c 引入头文件socket
  • 超详细正点原子STM32F429开发板视频教程笔记01

    文章目录 前言一 GPIO入门知识二 寄存器描述和配置方法1 GPIO寄存器 总结 前言 买了一块正点原子阿波罗stm32f429开发板 xff0c 趁暑假有空看看教学视频 xff0c 之前看过一部分所以从GPIO的原理和配置开始写笔记 提
  • 软件测试之项目总结全攻略

    在我们测试工作过程中 xff0c 由于公司业务发展 xff0c 快速迭代等原因 xff0c 我们遇到的项目以小项目居多 更新界面元素 xff0c 上个活动页 xff0c 优化一下原有的功能等等 xff0c 加上事情繁琐 xff0c 任务多
  • 简历中的项目经历可以怎么写?

    概述 工作这10多年来 xff0c 也经常做招聘的工作 xff0c 面试过的人超过50人次了 xff0c 而看过的候选人的简历则有几百份了 xff0c 但是清晰且能突出重点的简历 xff0c 确实很少遇到 这里基本可以说明一个问题 xff0
  • 教你用Python写一个京东自动下单抢购脚本(Python实现京东自动抢购)

    很多朋友都有网购抢购限量商品的经历 有时候蹲点抢怎么也抢不到 今天小编带你们学习怎么用Python写一个京东自动下单抢购脚本 以后再也不用拼手速拼网速啦 快来一起看看吧 1 问题背景 经过无数次抢购失败后 xff0c 发现商家会不定时的放出
  • 千里独行Thousands of miles to ride alone

    关于三国时期有很多流行的故事 其中最著名的就是千里独行 关羽保护二嫂 xff0c 从徐都出发 xff0c 经过五门 xff0c 斩六将 xff0c 终于在古城与刘备 张飞两兄弟重逢 现在 xff0c 你的任务是为关羽找到跑得比兔子还快的兄弟