qduoj 帅气的HYC迷路了

qduoj 140 题目6 142 ycb的ACM进阶之路 题目6 发布时间: 2017年5月22日 14:30   最后更新: 2017年5月22日 14:33   时间限制: 1000ms   内存限制: 128M 描述 给n,m,k,求上述方程中( X1 , X2 ... Xn , Y1 , Y2 ... Ym )解的个数(其中Xi>0,Yi>0)  |:二进制按位或运算,1|0=1,0|0=0,1|1=1,0|1 阅读详情

帅气的HYC迷路了

发布时间: 2015年11月1日 17:02   最后更新: 2015年11月1日 18:40   时间限制: 1000ms   内存限制: 128M

 有一天, 我们帅气的HYC找到了一张藏宝图, 这张图很神奇, 只要你看它一眼, 立马就会被传送到一个迷宫里, 这个迷宫仅有一个出口.那么现在问题来啦, 问你找到这个出口需要走多少步?

    现在给出HYC在迷宫房中走的规则, HYC每走出一步, 都会优先向左走, 如果左边是墙, 那么他会向前走, 如果前边也是墙, 那么他就会向右走, 如果右边也是墙, 那么他只能选择后退了~~~~>_<~~~~

    另外, HYC也想知道如果不这样走, 他最少能走多少步能走出出口呢?

首先给出一个T (1 <= T < 100) 代表T组测试数据 每组测试数据第一行为两个整数r 和 c (3 <= r,c <= 40) r代表这个迷宫有多少列,c代表这个迷宫有多少行. S表示入口, E表示出口, #表示墙不能走, .表示空白区域, 可以走. 题目保证给出的迷宫四周都是墙, 而且按照规则走总能找到出口, 且初始方向为向北走,快来帮帮他吧!

每组数据输出两个数, 第一个数表示按照规则走的步数, 第二个数表示走到出口最短需要多少步.

 复制
1
9 5
#########
#.#.#.#.#
S.......E
#.#.#.#.#
#########
17 9
基础bfs,dfs

#include<stdio.h>
#include<queue>
#include<string.h>
using namespace std;
char map[50][50];
int book[50][50],n,m,flog;
int go[4][2]={0,1,-1,0,0,-1,1,0};
struct node
{
	int x,y;
	int time;
}re,pe;
int check(node r)
{
	if(r.x<0||r.x>=n||r.y<0||r.y>=m||map[r.x][r.y]=='#')
	return 1;
	return 0;
}
int bfs(int x,int y)
{
	queue<node> q;
	memset(book,0,sizeof(book));
	re.x=x;
	re.y=y;
	re.time=0;
	q.push(re);
	book[x][y]=1;
	while(!q.empty())
	{
		pe=q.front();
		q.pop();
		for(int i=0;i<4;i++)
		{
			//printf("haha\n");
			re=pe;
			re.x+=go[i][0];
			re.y+=go[i][1];
			re.time++;
			if(check(re))
			{
				continue;
			}
			if(book[re.x][re.y])
			continue;
			if(map[re.x][re.y]=='E')
			{
				printf("%d",re.time+1);
				return 0;
			}
			book[re.x][re.y]=1;
		//	printf("%d %d %d\n",re.x,re.y,re.time);
			q.push(re);
			
		}
	}
}
int dfs(node p,int fang)
{
	int i,j;
	node q;
//	printf("%d %d %d\n",p.x,p.y,p.time);
	if(map[p.x][p.y]=='E'||flog)
	{
		flog=1;
		printf("%d",p.time+1);
		return 0; 
	}
	for(i=0;i<4;i++)
	{
		if(i==0)
		j=(fang+1)%4;
		else if(i==1)
		j=fang;
		else if(i==2)
		j=(fang+3)%4;
		else
		j=(fang+2)%4;
		q=p;
		q.x+=go[j][0];
		q.y+=go[j][1];
		q.time++;
		if(check(q))
		continue;
		else
		break;
	}
	dfs(q,j);
	return 0;
	
}
int main()
{
	int t,i,j;
	node s;
	scanf("%d",&t);
	while(t--)
	{
		flog=0;
		scanf("%d %d",&m,&n);
		getchar();
		for(i=0;i<n;i++)
		scanf("%s",map[i]);
	//	for(i=0;i<n;i++)
	//	{
		//	for(j=0;j<m;j++)
		//	printf("%c",map[i][j]);
		//	printf("\n");
	//	}
		for(i=0;i<n;i++)
		for(j=0;j<m;j++)
		if(map[i][j]=='S')
		{
			
			//dfs(i,j);
			s.x=i;
			s.y=j;
			s.time=0;
			dfs(s,1);
			printf(" ");//printf("haha\n");
			bfs(i,j);
			printf("\n");
		}
	}
	return 0;
}




国央企创新负责人如何快速识别关键技术成果并推动落地?.docx 科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。 立即下载

相关推荐

CVAT自动标注避坑指南:从nuctl安装到YOLOv5模型部署的完整流程

本文详细介绍了在CVAT中部署YOLOv5自动标注功能的完整流程与避坑指南。重点解决了从nuctl工具安装、项目创建时因网络问题导致的镜像拉取失败,到最终模型函数部署与CVAT集成的关键步骤。针对国内网络环境,提供了实用的镜像替换方案,帮助用户顺利完成基于CPU的自动化标注环境搭建。

pytorch8learner的博客 229

帅气的HYC迷路了

描述 有一天, 我们帅气的HYC找到了一张藏宝图, 这张图很神奇, 只要你看它一眼, 立马就会被传送到一个迷宫里, 这个迷宫仅有一个出口.那么现在问题来啦, 问你找到这个出口需要走多少步? 现在给出HYC在迷宫房中走的规则, HYC每走出一步, 都会优先向左走, 如果左边是墙, 那么他会向前走, 如果前边也是墙, 那么他就会向右走, 如果右边也是墙, 那么他只能选择后退了~~~~

zyf_2014的博客 671

Python pydub实现语音停顿切分

将pcm文件批量处理成wav文件 import wave import os filepath = "data/" # 添加路径 filename = os.listdir(filepath) # 得到文件夹下的所有文件名称 #f = wave.open(filepath + filename[1], 'rb') #print(filename) for i in range(len(fi...

wangqianqianya的博客 1万+

愚蠢的矿工--树形动态规划

http://www.rqnoj.cn/Problem_30.html 一、思路 题目是多叉树,原本想 0                       0 0 3  =0 1 2 =0  2 1 = 0 3 1 但是要列举的情况太多,就采用转换为二叉树的方法 1 2 3 1、读进多叉树tree[1001][1001] tree[i][0]来记录本节点的孩子个数 tree[i][j

legan的专栏 992

S32K144(1)新建裸机项目以及烧录调试工程

目录 1、简介 2、S32DS新建裸机项目 2.1、新建空的项目 2.2、选择标准库的S32DS 2.3、选择使用EWL官方库 2.4、新建成功 3、烧录工程 3.1、点击Debug,选择Debug Configurations 3.2、新建GDB SEGGER J-Link Debugging 3.3、确认Project和C/C++ Applicants是需要烧写的项目名和路径正确 3.4、确认Executable Device name Interface等各个配置信息正确,后点击

朗朗上口就行啦的博客 4975

u3d逆向学习之纯C内存读写与ImGui绘制(Android)

方法:需要在/proc/pid/maps文件查找模块名,一行行遍历所有内存,第一个参数为模块名,第二个参数为索引index(因为该模块会有多个,index为正序遍历第index个该模块),若找到了则使用。32位游戏的指针大小采用4字节,而64位游戏的指针大小采用8字节(这里需要注意),数据地址以16进制存储,使用unsigned long类型 ,该函数只有一个参数,数据地址,返回该地址的指针跳转地址。文件,比较其中的内容是否与传入的包名相同,如果相同,则返回该进程的PID。

zhoujunjie2004的博客 1687

[codevs1418]愚蠢的矿工

题目←之前听过思路,胡搞了一下…… 左儿子右兄弟写起来简单些(枚举次数并不少)转移: dp[i][j]为到第i个点剩j人的最大可获价值 节点上留人则可由左儿子和右兄弟的和+自己转来; 节点上不留人只能由右兄弟转来#include<iostream> #include<cstdio> #include<algorithm> #include<cstring> using namespace s

LOI_pingxing的博客 750

第1章 大数据概述

三次信息化浪潮 信息化浪潮 发生时间 标志 解决的问题 代表企业 第一次 1980年前后 个人计算机 信息处理 Intel、AMD、IBM、苹果、微软、联想、戴尔、惠普等 第二次 1995年前后 互联网 信息传输

wyz191的专栏 7088

【树形DP】愚蠢的矿工

【树形DP】愚蠢的矿工并没有什么用的更新时间愚蠢的矿工【题目描述】【输入格式】输出格式【样例输入】【样例输出】【代码】【相关链接】 并没有什么用的更新时间 【2019/03/05】 题目及代码更新 愚蠢的矿工 【题目描述】 Stupid 家族得知在HYC家的后花园里的中央花坛处,向北走3步,向西走3步,再向北走3步,向东走3步,再向北走6步,向东走3步,向南走12步,再向西走2步( - -||)...

qq_44618728的博客 530

使用OpenGL加载和显示DXF格式的3D模型文件编程

这样,我们就完成了使用OpenGL加载和显示DXF格式的3D模型文件的编程。通过实现加载函数和绘制回调函数,我们能够读取DXF文件的数据并使用OpenGL绘制出来。请注意,这只是一个简单的例子,仅涵盖了基本的加载和显示功能。在本文中,我们将探讨如何使用OpenGL编程加载和显示DXF(Drawing Exchange Format)格式的3D模型文件。DXF是一种通用的CAD(计算机辅助设计)文件格式,常用于存储和交换2D和3D图形数据。使用OpenGL加载和显示DXF格式的3D模型文件编程。

2301_79331421的博客 413

30、航空公司调度问题的数学模型解析

本文详细解析了航空公司调度问题中的核心数学模型,包括航班时刻表生成、机组人员排班和飞机调度的建模方法与求解技术。通过定义变量、约束条件及目标函数,结合线性规划、整数规划等方法,帮助航空公司实现高效调度。文章还探讨了模型的优化策略、简化方法以及实际应用案例,为提升航空运营效率提供了理论支持和实践指导。

beer8的博客 259

qduoj 一道非常简单的签到题

一道非常简单的签到题 发布时间: 2016年7月2日 20:32   最后更新: 2016年7月2日 21:48   时间限制: 1000ms   内存限制: 128M 描述 给你k,a,b三个数,问[a,b]区间内有多少个数可以整除k。(n / k == 0) 输入 多组输入,即输入包括多行,每行三个数k,a,b。 其中1 ≤ k ≤ 10^18,-10

jerans的博客 1565

UE5 蓝图节点图文大全(300+蓝图,9万字+)

本文采用虚幻5.2.1版本,以图文的方式对蓝图节点进行介绍,包括蓝图节点的输入输出参数解释,并有中英文节点名称可参考。

一碗清深的博客 2万+

qduoj 码农必修(x或y等于x加y)

描述 给你 x, k, 求满足 x + y= x | y 这个公式的第 k 小的正整数y。 哦对,“|”表示的是二进制里面的按位或操作 输入 输入文件中包含多组数据,每组数据为两个正整数 x , k。 满足(0 输出 输出一个数y 样例输入1 复制 5 1 样例输出1 2 思路:按二进制考虑,例如5的二进制

jerans的博客 953

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

qduoj LC的涂色游戏

LC的涂色游戏 发布时间: 2015年9月19日 21:42   时间限制: 1000ms   内存限制: 256M 描述 LC是实验室传说级的大神,最近喜欢上了涂色游戏,现在纸上有n块空白区域,lc手中有m种颜色,他突然想知道,用手中所有颜色,将空白涂满有多少种方案(每个空白只能涂一种颜色),lc当然可以快速算出来了,不过他现在忙着涂色,你能很快的算出来吗?

jerans的博客 669

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

qduoj kkun和CerberuX

kkun和CerberuX 发布时间: 2017年1月1日 15:11   最后更新: 2017年1月1日 15:16   时间限制: 2000ms   内存限制: 128M 描述 这一天kkun和CerberuX日常在玩游戏,这时候,他们发现了一个双人合作类游戏。 给出一个n*m的地图,地图的每个格子都有分数,由kkun从左上角跑到右下角,CerberuX从左下角跑到

jerans的博客 624

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

qduoj 数组中出现最多的元素

数组中出现最多的元素 发布时间: 2015年10月6日 10:35   时间限制: 1000ms   内存限制: 256M 描述 给你一个数组,输出里面出现超过1/2的元素。保证有且只有一个解。 输入 第一行是一个整数,表示测试数据的组数 n,n 之后每一行都是一个整数。 输出 输出出现超过1/2的那个数字。 样例输入1 复制

jerans的博客 612

qduoj 河神的难题 思维 实验室腊新呐 枚举

河神的难题 发布时间: 2017年6月23日 22:53   最后更新: 2017年6月23日 22:57   时间限制: 1000ms   内存限制: 128M 描述  一天ycb老师高兴的走在小河边,嘴里哼着小曲,突然河神从河里跳了出来,手里拿着一本《顶级游戏设计》。 河神对ycb老师说:"孩子你想要这本书吗?"要知道ycb老师早就想要一本游戏书了,所以y老师高兴的跳了

jerans的博客 611

qduoj 农场主良辰(感谢cqupt...

韬韬最喜欢萌妹啦 发布时间: 2015年12月7日 13:54   最后更新: 2015年12月12日 23:10   时间限制: 1000ms   内存限制: 128M 描述 良辰有n(1 已经有不少农田中毒了。良辰找到了学识渊博的slowlight帮他。slowlight发明了一种NotDeep侦查器。这种侦查器被放置在农田中,当NotDeep出现在跟这块农田的

jerans的博客 594

Codeforces Good Bye 2016 C.New Year and Rating//qduoj 三亿河老师的上分梦想

C. New Year and Rating time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output Every Codeforces user has rating, de

jerans的博客 574

qduoj 交通规划

交通规划 发布时间: 2015年10月10日 18:05   时间限制: 2000ms   内存限制: 256M 描述 调查某城镇交通状况,得到城镇道路统计表,表中列出了每条道路直接连通的城镇。要使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要互相间接通过道路可达即可)。问最少还需要建设多少条道路?  输入 测试输入包含若干测试用例。每个测试

jerans的博客 530

qduoj 韬韬说做出这个泥萌就AK辣

韬韬说做出这个泥萌就AK辣 发布时间: 2015年12月7日 13:53   最后更新: 2015年12月12日 23:12   时间限制: 1000ms   内存限制: 128M 描述    韬韬晚上想前面那个概率题想了很久,米有做出来,好难啊。想着想着就睡着了,做啦一个梦,梦里面没有概率题呢。    在梦里,韬韬感觉仿佛来到了一个奇怪的地方,韬韬不断地往前走,走到头才发

jerans的博客 518

qduoj 分辣条2

分辣条2 发布时间: 2016年7月2日 21:47   最后更新: 2016年7月2日 21:51   时间限制: 1000ms   内存限制: 128M 描述 啊啊有根很大的辣条,重量为n,啊啊想把辣条分给很多小朋友,但是必须满足下列条件: 1.每个小朋友分得的辣条重量为a,b或c; 2.分得辣条的小朋友的数量最多; 3.没有剩余的辣条,也就是说所有辣条都分完啦。

jerans的博客 508

qduoj 韬韬与炉石传说

韬韬与炉石传说 发布时间: 2015年12月7日 13:54   最后更新: 2015年12月12日 23:10   时间限制: 1000ms   内存限制: 128M 描述    最近韬韬周围的小伙伴们都在玩炉石传说, 感觉好厉害的样子, 可是韬韬早都不玩游戏了呢, 自从入坑ACM之后。“不能没有我的蜡烛”, 韬韬天天都能听到这样的句子 - -    听说炉石传说开放了新

jerans的博客 506

qduoj GZS送温暖

GZS送温暖 发布时间: 2015年9月6日 15:18   最后更新: 2016年6月30日 21:54   时间限制: 1000ms   内存限制: 256M 描述     众所周知,GZS是一个总是考第一的大学霸,为什么呢?因为GZS喜欢思考!(逃… 当然,GZS也有不愿意动脑的时候,给你N个正整数(可以重复),GZS希望让你告诉他这些正整数里面第K小的数是多少。

jerans的博客 502

qudoj LC与三角形

LC与三角形 发布时间: 2015年9月19日 21:42   时间限制: 1000ms   内存限制: 256M 描述 Luan神最近对三角形比较感兴趣,于是他出了这样一个题:给你三个点,表示一个三角形的三个顶点,现你的任务是求出该三角形的面积 输入 每行是一组测试数据,有6个整数x1,y1,x2,y2,x3,y3分别表示三个点的横纵坐标。(坐标值都在-10

jerans的博客 500
上一篇: CodeForces - 148D. Bag of mice//Codeforces Round #105 (Div. 2)
下一篇: Codeforces Round #387 (Div. 2)A~D A Display Size D Winter Is Coming
jerans
博客等级 码龄10年 54粉丝 255原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值