【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;
}

好像…就没有了耶

工程伦理-知识点汇总 阅读详情

相关推荐

微信小程序音视频通话(for硬件)授权与设备注册实战指南

本文详细介绍了微信小程序音视频通话(for硬件)组件的开发实践,涵盖授权流程、设备注册与VoIP插件集成。重点解析了如何通过服务端获取snTicket实现用户授权,确保硬件设备与微信端的音视频通话安全可靠,适用于智能门禁、话机等物联网场景。

u6v7w8x的博客 945

麻将游戏设计

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

lzc1312918532的博客 3734

解决turmex安装kali报错问题

在手机上安装好turmex后,都喜欢安装一个Linux系统,我当时安装的时kali,但是安装过程中,报错不断。 2019.8.24更新 1,出现问题首先看下载kali源文件是否完整 安装步骤中,会显示[解压中.....] ,可以看到解压的大小。 如图所示,完整源文件不小于81M。 如果源文件过小,则说明下载错误,而且在remove kali这个命令下,是不会删除源文件的,下一次安装只...

WeiLuckyStrike的博客 1万+

【题解】麻将游戏

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

weixin_30832983的博客 879

UE5 GAS实战:从零构建一个MOBA英雄技能系统

本文详细介绍了如何利用UE5的Gameplay Ability System(GAS)构建MOBA英雄技能系统,涵盖核心组件如Ability System Component和GameplayEffect的使用,以及技能冷却、资源管理和连招系统等高级功能的实现。通过实战案例和代码示例,帮助开发者快速掌握GAS在MOBA游戏开发中的应用。

weixin_29012765的博客 526

【ENVI初学】查看影像空间分辨率及重采样

例如,如果线段长度为900米,对应的像素数量为30个,那么影像的空间分辨率为30米。通过计算长度与像素数量的比值,即可得到影像的空间分辨率。,在弹出的对话框中,输入重采样后输出文件的xy分辨率大小。在测量结果窗口中,可以看到该线段的长度以及角度。在影像上点击并拖动鼠标,绘制一条直线段。工具,选择要重采样的影像后点击ok。,避免了插值过程中光谱信息的改变。:最近邻插值法通过选择原始影像中。在ENVI中打开影像后右键选择。指示了每个像素的地理跨度(聚合为一个新像素,通常通过。方法一:查看影像的元数据。

weixin_41619112的博客 5571

麻将游戏【BFS】

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

在人间贩卖声音 474

TC3XX - MCAL知识点(二十):CAN MCAL配置及代码实战(CAN/CANFD/extenen CAN)

CAN驱动程序负责提供AUTOSAR指定的标准CAN通信服务。M_CAN单元是底层的CAN硬件单元,它由共享消息RAM(在AUTOSAR中称为硬件对象)的节点(在AUTOSAR中称为控制器)组成。CAN驱动提供以下服务:·初始化CAN控制器以控制CAN控制器的行为和状态·设置和修改CAN控制器的波特率配置·支持CAN和CAN FD帧的收发·在轮询和中断模式下,成功的帧传输通知,专用和FIFO消息的接收和总线事件通知·数据接收使用接收FIFO功能·假装网络模式处理·支持多读/写周期功能。

梦想技术家 3939

麻将游戏

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

weixin_33856370的博客 279

ESP32设备驱动-AS5600磁性旋转位置传感器

AS5600 是一款可编程的 12 位高分辨率非接触式磁性旋转位置传感器。 AS5600可以作为磁性电位器或磁性编码器使用,具有出色的可靠性和耐用性。 与传统电位器/编码器相比,AS5600具有显着优势:高精度、非接触式、旋转角度无限制。 所有这些优点使其适用于非接触式角度测量应用,例如机器人手臂、云台、电机闭环控制、机床轴定位。

视觉与物联智能 2551

高通平台开发系列讲解(系统篇)系统关机流程

📢本篇章主要图解高通平台系统关机流程。

内核笔记 3212

SSLOJ·无限序列【模拟】

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

ヽ(o_ _)o 644

109. SAP ABAP 应用程序中的锁机制和工作原理介绍

SAP ABAP 系统中的锁概念,是 SAP ABAP 为了保证`数据一致性`而引入的一种保护机制。 像 SAP 这种复杂的企业级应用,系统中同一时间段的同一份数据,可能会有多个 Transaction(终端用户或者 API )同时进行读写操作。为了防止出现数据不一致,SAP ABAP 引入了锁机制。 这种锁机制并非数据库服务器层面的锁,而是在 SAP ABAP 应用服务器层面上工作,加锁和解锁都由专门的 ABAP Function Module 来完成。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1467

SSL P1786 麻将游戏

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

生如夏花之绚烂 1503

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

SSL P1786 麻将游戏 题目

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

qq_35786326的博客 633

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

SSL JudgeOnline 1786——麻将游戏

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

weixin_30399797的博客 251

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

一篇教会你用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、付费专栏及课程。

余额充值