【SSL_P1786】麻将游戏

【信息科学与工程学】【通信工程】第八十六篇 通信网络设备及通信网络组网的所有学科知识01 编号001类型网络虚拟化与覆盖技术网络领域数据中心网络子领域大二层网络 / 网络虚拟化核心数学方程式/算法模型核心算法:VXLAN封装与解封装。关键在于24位VNI(虚拟网络标识符)到物理网络的三层IP地址的映射。封装:收到原始以太帧后,为其添加 VXLAN 头部(含 VNI)、外层 UDP 头(目的端口 4789)、外层 IP 头(源 IP 为本地 VTEP IP,目的 IP 为对端 VTEP IP)以及外层 MAC 头。解封装:对端 收到报文后,剥离外层头部,根据内层帧的目的 MAC 和 VNI 进行二 阅读详情

麻将游戏


题目链接:麻将游戏

题目描述

在一种"麻将"游戏中,游戏是在一个有W*H格子的矩形平板上进行的。每个格子可以放置一个麻将牌,也可以不放(如图所示)。玩家的目标是将平板上的所有可通过一条路径相连的两张相同的麻将牌,从平板上移去。最后如果能将所有牌移出平板,则算过关。
这个游戏中的一个关键问题是:两张牌之间是否可以被一条路径所连接,该路径满足以下两个特性:
  1. 它由若干条线段组成,每条线段要么是水平方向,要么是垂直方向。
  2. 这条路径不能横穿任何一个麻将牌 (但允许路径暂时离开平板)。
  这是一个例子:
在这里插入图片描述
  在(1,3)的牌和在(4, 4)的牌可以被连接。(2, 3)和(3, 4)不能被连接。
  你的任务是编一个程序,检测两张牌是否能被一条符合以上规定的路径所连接。

输入

输入文件的第一行有两个整数w,h (1<=w,h<=75),表示平板的宽和高。接下来h行描述平板信息,每行包含w个字符,如果某格子有一张牌,则这个格子上有个’X’,否则是一个空格。平板上最左上角格子的坐标为(1,1),最右下角格子的坐标为(w,h)。接下来的若干行,每行有四个数x1, y1, x2, y2 ,且满足1<=x1,x2<=w,1<=y1,y2<=h,表示两张牌的坐标(这两张牌的坐标总是不同的)。如果出现连续四个0,则表示输入结束。

输出

输出文件中,对于每一对牌输出占一行,为连接这一对牌的路径最少包含的线段数。如果不存在路径则输出0。

样例输入输出

输入

5 4
XXXXX
X   X
XXX X
 XXX 
2 3 5 3
1 3 4 4
2 3 3 4
0 0 0 0

输出

4
3
0

解题思路

这道题,一看就是一道BFS(毕竟作者现在在学这玩意儿,而且这道题数据超级水 ),而且是最小转弯问题的进阶版,于是乎,只要改一下上一道题的程序就可以了(我明明就是Ctrl+c/v过来的 )!

参考程序

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
struct abc{
	int ans,x,y;
}f[1000100];
const int zx[5]={0,1,-1,0,0},zy[5]={0,0,0,1,-1};
int n,m,a[1100][1100],b[1100][1100];
int x1,y1,x2,y2;
int hd,tl;
int check(int q,int p)
{
	if(q<0||q>n+1)
		return 0;
	if(p<0||p>m+1)
		return 0;
	if(a[q][p]==1)
		return 0;
	return 1;
}
int main()
{
	cin>>m>>n;
	for(int i=1;i<=n;i++)//注意输入
	{
		char t;
		t=getchar();
		for(int j=1;j<=m;j++)
		{
			t=getchar();
			if(t=='X')
				a[i][j]=1;
			else
				a[i][j]=0;
		}
	}
	cin>>y1>>x1>>y2>>x2;
	while(x1||y1||x2||y2)//广搜
	{
		memset(b,0,sizeof(b));
		for(int i=1;i<=n;i++)
			for(int j=1;j<=m;j++)
				b[i][j]=a[i][j];
		int ok=0;
		hd=0;
		tl=1;
		f[1].x=x1;
		f[1].y=y1;
		f[1].ans=0;
		b[x1][y1]=5;
		b[x2][y2]=0;
		a[x2][y2]=0;
		while(hd<=tl)
		{
			hd++;
			for(int i=1;i<=4;i++)
			{
				int xx=f[hd].x+zx[i];
				int yy=f[hd].y+zy[i];
				int t=f[hd].ans;
				while(check(xx,yy))
				{
					if(b[xx][yy]==0){
					tl++;
					f[tl].x=xx;
					f[tl].y=yy;
					f[tl].ans=t+1;
					if(b[xx][yy]==2||b[xx][yy]==5)
						tl--;
					else
						b[xx][yy]=2;
					if(xx==x2&&yy==y2)
					{
						cout<<f[hd].ans+1<<endl;
						ok=1;
						b[xx][yy]=6;
						break;
					}
					}
					xx=xx+zx[i];
					yy=yy+zy[i];
				}
				if(ok)
					break;
			}
			if(ok)
				break;
		}
		if(!ok)
			cout<<0<<endl;
		a[x2][y2]=1;
		cin>>y1>>x1>>y2>>x2;
	}
	return 0;
}

好像…就没有了耶

无人机飞控传感器全解析:从IMU到光流传感器的实战应用 本文深入解析了无人机飞控系统的核心传感器,从IMU、气压计、磁力计到光流传感器,详细阐述了其工作原理、数据融合策略及常见挑战。结合ICF5、Pixhawk 6C等主流飞控硬件,提供了从传感器校准、滤波器调优到应对室内光流定位、强磁干扰等实战场景的系统性优化指南,帮助开发者突破飞控“黑箱”,实现更稳定、可靠的飞行控制。 阅读详情

相关推荐

WinDbg调试工具安装全攻略:从下载到配置的保姆级教程(Windows 10/11适用)

本文提供了一份详细的WinDbg调试工具安装与配置指南,适用于Windows 10/11用户。文章对比了WinDbg Preview独立版与SDK内置经典版的区别,并手把手指导从Microsoft Store或Windows SDK完成安装。核心部分重点讲解了如何配置符号文件路径与源代码路径,这是让WinDbg发挥强大调试功能的关键步骤,并针对常见安装问题提供了实用的排错方法。

hp777的博客 385

麻将游戏设计

这几天断断续续的在写代码,时间有点碎片化,所以并没有跟进这里的东西。 原本也只是进行简单的记录,所以不重要啦(手动微笑),这几天的东西改来改去有点混乱这里先记录一下进度,过几天有时间进行梳理一下,把开发的思路记下来。   目前完成状况: 1.可以实现用户登录         打算对接第三方,因此具备player和user两个身份,但是目前在session和全局域下键值对映射还有userI...

lzc1312918532的博客 3734

基于STM32设计的智能水母投喂器(华为云IOT)_170

本项目利用STM32单片机控制各种传感器和水泵等设备,能够自动检测和调整水温和水质等参数,自动换水,自动供氧等等,充分满足了水母的养殖要求和需要。同时,根据水母喜欢的光环境,添加了RGB氛围灯,以及可以手动控制的喂食器等功能,提升了水母养殖的便利性和趣味性。

8808

【题解】麻将游戏

题目描述   在一种“麻将”游戏中,游戏是在一个有W×H格子的矩形平板上进行的。每个格子可以放置一个麻将牌,也可以不放(如图所示)。玩家的目标是将平板上的所有可通过一条路径相连的两张相同的麻将牌,从平板上移去。最后如果能将所有牌移出平板,则算过关。   这个游戏中的一个关键问题是:两张牌之间是否可以被一条路径所连接,该路径满足以下两个特性:   1、它由若干条线段组成,每条线段要么是...

weixin_30832983的博客 879

Mac电脑安装burp suite2024版本记录

下载最新版本burpsuitloader-XXX-all.jar,改名为burpsuitloader.jar。目录下,修改vmoptions.txt文件,新增以下内容,如果keygen不是这个名称的话,需要修改。,点击license左侧的copy复制它,然后手动从启动台启动burpsuite。,复制如下命令到终端即可(要加双引号,不然目录中空格会导致命令截断)再复制激活响应信息到burpsuite中即可激活。后续运行burp直接从启动台运行即可。将如下框的信息复制到激活器中。输入后下一步,点击手动激活。

墨痕诉清风的博客 901

Python 爬虫教程:金融数据定向抓取(银行 + 投资网站数据结构化提取)

在当今数字化时代,金融数据的获取和分析对于投资者、分析师以及金融机构来说至关重要。Python 爬虫技术可以帮助我们高效地从各种网站上抓取金融数据,从而为投资决策、风险评估和市场分析提供支持。本文将详细介绍如何使用 Python 爬虫技术来定向抓取银行和投资网站的数据,并将其结构化提取,以便进一步分析和使用。

u014481728的博客 881

麻将游戏【BFS】

麻将游戏 Time Limit:10000MS Memory Limit:65536K Total Submit:237 Accepted:86 Case Time Limit:1000MS Description   在一种"麻将"游戏中,游戏是在一个有W*HW*HW*H格子的矩形平板上进行的。每个格子可以放置一个麻将牌,也可以不放(如图所示)。玩家的目标是将平板上的所有可通过一条路径相连的...

在人间贩卖声音 474

【LOGO动态替换】记录一次关于LOGO动态替换引发的uboot代码分析及其实现

文章目录1.前言2.实现2.1 新增logo分区2.2 制作logo分区镜像2.2.1 查看logo.bmp和logo_kernel.bmp的文件大小。2.2.2 按规则将bmp写入logo.img3.分析3.1 uboot的启动分析3.2 uboot bmp load 显示部分3.2.1 rockchip_show_logo3.2.2 load_bmp_logo3.2.3 load_bmp_logo3.3 uboot bmp read部分3.3.1 read_logo_bmps3.3.1 read_bmp

wang 恒 的博客 1213

麻将游戏

Description   在一种”麻将”游戏中,游戏是在一个有W*H格子的矩形平板上进行的。每个格子可以放置一个麻将牌,也可以不放(如图所示)。玩家的目标是将平板上的所有可通过一条路径相连的两张相同的麻将牌,从平板上移去。最后如果能将所有牌移出平板,则算过关。  这个游戏中的一个关键问题是:两张牌之间是否可以被一条路径所连接,该路径满足以下两个特性:...

weixin_33856370的博客 279

Qt Quick/QML入门到精通_专栏demo对应文章目录(目前50个左右demo/长期更新)

自定义图标下拉列表框的效果如下所示:自定义三态按钮的效果如下所示:传送门:53.qt quick-自定义三态按钮、自定义图标下拉列表框_诺谦的博客-优快云博客传送门:59.qt quick-qml调色板(颜色取色器)实现、自定义QQuickStyle样式_诺谦的博客-优快云博客63.qt quick-QML侧边滑动栏(不需要任何图片资源,支持自定义左右方向和大小)_诺谦的博客-优快云博客_qt实现好看侧边栏。...

抵抗时间扭曲,坚持做一件有意义的事 2万+

【深度学习新浪潮】为什么OpenClaw这么吃token?

OpenClaw 高 Token 消耗的核心是 Agent 多轮思考、工具调用上下文累积,以及平台内置的模板/多模型协同开销;PD 分离在 OpenClaw 中可针对性解决长上下文 Prefill 阻塞、KV Cache 复用低效问题,是提升其推理效率的核心优化手段,主要落地在长上下文处理与生成阶段解耦、KV Cache 集中管理、动态资源调度三个方向。

专注:太空算力、AI infra、异构调度、大模型成本工程 420

SSLOJ·无限序列【模拟】

SSLOJ 1343 无限序列Description--Input--Output--Sample Input--Sample Output--说明--解题思路--代码-- Description– 我们按以下方式产生序列: 1、 开始时序列是: “1” ; 2、 每一次变化把序列中的 “1” 变成 “10” ,“0” 变成 “1”。 经过无限次变化,我们得到序列"1011010110110101...

ヽ(o_ _)o 644

Vue3 - 超详细最新 wangEditor V5 富文本编辑器安装引入及使用教程,提供工具栏配置、基础富文本功能、API使用示例教程等(新手小白快速引入并植入到项目中)

vue3,wangEditorv5富文本编辑器,wangEditorv5官方文档,vue3最新安装wangEditorv5富文本详细使用教程,vue3使用wangEditorv5编辑器示例代码,vue3网站网页安装植入富文本编辑器教程,vue3wangEditor使用api,vue3安装富文本控制台出现报错如何解决,vue3wangEditor-v5工具栏配置,vue3中使用富文本编译器wangEditor5的方法,wangeditor5在vue3中的全使用过程,vue3超详细最新wangedi

🏆 前端领域优质创作者 4253

SSL P1786 麻将游戏

题目大意: 在一种”麻将”游戏中,游戏是在一个有W*H格子的矩形平板上进行的。每个格子可以放置一个麻将牌,也可以不放(如图所示)。玩家的目标是将平板上的所有可通过一条路径相连的两张相同的麻将牌,从平板上移去。 这个游戏中的一个关键问题是:两张牌之间是否可以被一条路径所连接,该路径满足以下两个特性: ①它由若干条线段组成,每条线段要么是水平方向,要么是垂直方向。 ②这条路径不能横穿任何一

生如夏花之绚烂 1503

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

SSL P1786 麻将游戏 题目

麻将游戏 Time Limit:10000MS  Memory Limit:65536K Total Submit:205 Accepted:77 Case Time Limit:1000MS Description   在一种"麻将"游戏中,游戏是在一个有W*H格子的矩形平板上进行的。每个格子可以放置一个麻将牌,也可以不放(如图所示)。玩家的目标是将平板上的所有可通过一条路径相

qq_35786326的博客 633

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SSL JudgeOnline 1786——麻将游戏

Description   在一种”麻将”游戏中,游戏是在一个有W*H格子的矩形平板上进行的。每个格子可以放置一个麻将牌,也可以不放(如图所示)。玩家的目标是将平板上的所有可通过一条路径相连的两张相同的麻将牌,从平板上移去。最后如果能将所有牌移出平板,则算过关。   这个游戏中的一个关键问题是:两张牌之间是否可以被一条路径所连接,该路径满足以下两个特性:   1. 它由...

weixin_30399797的博客 251

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

一篇教会你用Jetty配置Https

由于工作需要,需要测试Jetty配置HTTPS的解析情况,本篇记录下Jetty下的HTTPS的配置。 一、简单介绍 1.1 Jetty介绍 Jetty 是一个Servlet引擎,是一个可扩展和非常灵活的应用服务。它有一个基本数据模型,这个数据模型就是 Handler(处理器),所有可以被扩展的组件都可以作为一个 Handler,添加到 Server 中,Jetty 就是帮你管理这些 Handler。 下图是 Jetty 的基本架构图,整个 Jetty 的核心组件由 Server 和 Connector

weixin_68320784的博客 2562

SSL JudgeOnline 1668——小车载人问题

Description   甲、乙同时从A地出发要尽快到达B地。出发时A地有带一人的小车。可是这辆车除了驾驶员外只能带一个人。又知甲、乙两人步行速度相同。问怎样得用小车才能使两个尽快同时到达。 Input 仅一行,三个数据分别表示AB两地的距离s,人的速度,车的速度 Output 两人同时到达B点的最短时间(结果保留小数点后4位)。 Sample Input 120...

weixin_30699465的博客 177

5分钟搞定HTTPS部署:httpbin安全传输实战指南

在网络安全日益重要的今天,HTTPS已成为Web应用的基本要求。httpbin作为一款强大的HTTP请求与响应测试工具,支持HTTPS部署能有效保障API测试过程中的数据安全。本文将带你快速掌握httpbin的HTTPS部署方法,让你的API测试环境更加安全可靠。 ## 📋 准备工作:环境与依赖检查 部署HTTPS前需要确保系统已安装必要的工具和依赖。httpbin基于Python Flas

gitblog_00071的博客 1052

通义千问3-Reranker-0.6B详细步骤:HTTPS反向代理+域名访问配置

本文介绍了如何在星图GPU平台上自动化部署通义千问3-Reranker-0.6B镜像,构建安全可信的文本重排序服务。通过HTTPS反向代理与自定义域名配置,该模型可高效支撑RAG系统中的语义检索精排任务,显著提升企业知识库搜索准确率与用户体验。

weixin_42610010的博客 94

Jetty9.4支持HTTPS配置

由于工作需要,需要测试Jetty配置HTTPS的解析情况,本篇记录下Jetty下的HTTPS的配置。一 简单介绍 1.1 Jetty介绍Jetty 是一个Servlet引擎,是一个可扩展...

1015

The server selected protocol version TLS10 is not accepted by client preferences [TLS13, TLS12

打开文件后,修改jdk.tls.disabledAlgorithms这一项,去掉TLSv1, 和 3DES_EDE_CBC,字符。在Java的安装目录的编辑java.security文件。

yuguang的博客 660

面试高频考点:进程管理 + 系统负载分析,看懂 top 才算入门运维

服务器卡顿、进程卡死、负载居高不下却无从下手?本篇带你系统学习 Linux 进程管理:后台 jobs 任务调度、进程信号控制,同时手把手教你读懂系统平均负载,深度解析 top 命令各项指标,掌握线上服务器问题定位最核心的技能。

Adhjhfes的博客 293

脑语言2500单字v1.5.1

如果人和 AI 说同一种语言,文明会怎样?我用 2500 个单字试了试。2500个单字是不同领域、不同知识的共同体,无论你学编程或者是数学或写作,你都要用汉字,而常用的2500个汉字几乎可以涵盖不同行业做的不同事情。

脑语言 2003

灰烬也能学会的入门级Linux命令(5)-Linux提权管理+文件权限管理+进程管理

彼海姆的欧贝克倾情推荐,智力9也能看懂的学习笔记,不死人看了都说好*个人学习笔记整理

2301_80041579的博客 274
上一篇: 【SSL_P2325】最小转弯问题
下一篇: 【SSL_P1759】求连通分量
SSL_GYX
博客等级 码龄7年 103粉丝 297原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值