F---图像识别---河南省第十三届ICPC大学生程序设计竞赛

news2024/11/24 17:27:06

 链接:登录—专业IT笔试面试备考平台_牛客网
来源:牛客网
 

输入

10 10
........*.
........*.
........*.
........*.
....#...*.
........*.
........*.
**********
........*.
........*.

输出

-4 3

解析:

        遍历整个二维数组,判断坐标原点以及目标点的位置,注意原点在四角上需要特殊判断。

        从坐标原点开始BFS,注意移动的坐标判断。

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1010;
int n,m,sx,sy,dx,dy,vis[N][N];
char a[N][N];
int f(int x,int y){
	return x>0&&y>0&&x<=n&&y<=m;
}
int dir[4][2]={1,0,0,1,-1,0,0,-1};
struct node{
	int x,y,px,py;
};
int main(){
	scanf("%d%d",&n,&m);
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			cin>>a[i][j];
		}
	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			if(a[i][j]=='#') dx=i,dy=j;
			if(a[i][j]=='*'){
				if(i==1&&j==1&&a[i][j+1]=='*'&&a[i+1][j]=='*'){
					sx=1,sy=1;
					break;	
				}
				else if(i==1&&j==m&&a[i][j-1]=='*'&&a[i+1][j]=='*'){
					sx=1,sy=m;
					break;
				}
				else if(i==n&&j==1&&a[i-1][j]=='*'&&a[i][j+1]=='*'){
					sx=n,sy=1;
					break;
				}
				else if(i==n&&j==m&&a[i][j-1]=='*'&&a[i-1][j]=='*'){
					sx=n,sy=m;
					break;
				}
				else{
					int cnt=0;
					for(int k=0;k<4;k++){
						int x=i+dir[k][0];
						int y=j+dir[k][1];
						if(f(x,y)&&a[x][y]=='*') cnt++;
					}
					if(cnt>=3){
						sx=i,sy=j;
						break;
					}
				}
			}
		}
	}
	queue<node>q;
	q.push({sx,sy,0,0});
	vis[sx][sy]=1;
	while(q.size()){
		node t=q.front();
		q.pop();
		if(t.x==dx&&t.y==dy){
			cout<<t.py<<" "<<t.px;
			return 0;
		}
		for(int k=0;k<4;k++){
			int x=t.x+dir[k][0];
			int y=t.y+dir[k][1];
			int px,py;
			if(dir[k][1]==0){
				px=t.px-dir[k][0];
				py=t.py-dir[k][1];
			}
			else{
				px=t.px+dir[k][0];
				py=t.py+dir[k][1];
			}
			
			if(f(x,y)&&vis[x][y]==0){
				vis[x][y]=1;
				q.push({x,y,px,py});
			}
		}
	}
	return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/781201.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

dubbo从基于注解方式转为基于xml配置方式的使用心得

过程中遇到的问题百分之九十九的问题都是因为版本不兼容问题&#xff0c;所以在引入依赖的时候要注意这点&#xff0c;可以从maven central repository官方仓库这里看所要引用版本与其可兼容的版本

畅想未来感汽车HMI设计的奇妙之旅!

当下智能电动汽车的发展势头越来越高涨&#xff0c;与智能电动汽车相关的汽车HMI设计也成为各个品牌重点发力的地方&#xff0c;汽车HMI设计正在前所未有的新高度&#xff0c;本篇文章就来聊聊HMI设计的那些事 ⬇⬇⬇点击获取更多设计资源 https://js.design/community?categ…

prometheus监控mysql8.x以及主从监控告警

mysql8.x主从部署请看下面文档 docker和yum安装的都有 Docker部署mysql8.x版本互为主从_争取不加班&#xff01;的博客-CSDN博客 Mysql8.x版本主从加读写分离&#xff08;一&#xff09; mysql8.x主从_myswl8双主一从读写分离_争取不加班&#xff01;的博客-CSDN博客 安装部署…

C++OpenCV(4):图像截取与掩膜操作

&#x1f506; 文章首发于我的个人博客&#xff1a;欢迎大佬们来逛逛 &#x1f506; OpenCV项目地址及源代码&#xff1a;点击这里 文章目录 图像截取图像掩膜操作 图像截取 ROI操作&#xff0c;指的是&#xff1a;region of interest&#xff0c;感兴趣区域。 我们可以对一张…

Vue 项目增加版本号输出, 可用于验证是否更新成功

webpack 1. vue.config.js 中增加以下配置, 此处以增加一个日期时间字符串为例, 具体内容可以根据自己需求自定义 // vue.config.js module.exports {chainWebpack(config) {config.plugin(define).tap(args > {args[0][process.env].APP_VERSION ${JSON.stringify(new …

行为型模式--模版方法模式(图文详解)

模版方法模式--图文详解 采摘机器人-场景体验模版方法模式-解决问题模版方法模式-定义优缺点优点缺点 采摘机器人-场景体验 今天看抖音上外国开始使用采摘苹果的机器人&#xff0c;我们模仿一下的他的大体流程&#xff1a; 主体采摘车进入苹果园进入苹果指定采摘地点&#xf…

通过自动化单元测试的形式守护系统架构

目录 0前言 1 背景 2 为什么选择 Archunit 3 Archunit 是什么 4 引入 Archunit 4.1 开始就是如此简单 4.2 如何组织架构规则 4.3 团队如何规范化 0前言 通过自动化单元测试的形式守护系统架构是一种有效的方式&#xff0c;可以确保系统在不断演进和修改的过程中保持稳…

Python实战之数据挖掘详解

一、Python数据挖掘 1.1 数据挖掘是什么&#xff1f; 数据挖掘是从大量的、不完全的、有噪声的、模糊的、随机的实际应用数据中&#xff0c;通过算法&#xff0c;找出其中的规律、知识、信息的过程。Python作为一门广泛应用的编程语言&#xff0c;拥有丰富的数据挖掘库&#…

数据分享|R语言逻辑回归、Naive Bayes贝叶斯、决策树、随机森林算法预测心脏病...

全文链接&#xff1a;http://tecdat.cn/?p23061 这个数据集&#xff08;查看文末了解数据免费获取方式&#xff09;可以追溯到1988年&#xff0c;由四个数据库组成。克利夫兰、匈牙利、瑞士和长滩。"目标 "字段是指病人是否有心脏病。它的数值为整数&#xff0c;0无…

盖子的c++小课堂——第二十讲:动态规划

前言 中间呢其实还有两讲&#xff0c;但是那两讲太easy了&#xff0c;根本难不倒你们&#xff0c;所以&#xff0c;我索性不放了~~那我们今天讲一个比较容易的知识点——动态规划&#xff08;终于没人给我催更了&#xff01;哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈…

IOC控制反转--.net framework

IOC控制反转–.net framework 分层架构&#xff1a; 一、传统依赖倒置实现 传统工艺&#xff1a;会有依赖&#xff0c;上端全部展示细节 BaseBll baseBll new BaseBll(); baseBll.DoSomething();依赖于抽象&#xff1a;左边依赖倒置&#xff0c;面向抽象 实现类继承接口&am…

React18和React16合成事件原理(附图)

&#x1f4a1; React18合成事件的处理原理 “绝对不是”给当前元素基于addEventListener做的事件绑定&#xff0c;React中的合成事件&#xff0c;都是基于“事件委托”处理的&#xff01; 在React17及以后版本&#xff0c;都是委托给#root这个容器&#xff08;捕获和冒泡都做了…

动态规划入门第1课

1、从计数到选择 ---- 递推与DP&#xff08;动态规划&#xff09; 2、从递归到记忆 ---- 子问题与去重复运算 3、动态规划的要点 第1题 网格路1(grid1) 小x住在左下角(0,0)处&#xff0c;小y在右上角(n,n)处。小x需要通过一段网格路才能到小y家。每次&#xff0c;小x可以选…

视频基础知识

1.视频比特率 视频的比特率是指传输过程中单位时间传输的数据量。可以理解为视频的编码采样率。单位是kbps&#xff0c;即每秒千比特。视频比特率是决定视频清晰度的一个重要指标。比特率越高&#xff0c;视频越清晰&#xff0c;但数据量也会越大。比如一部100分钟的电影&#…

5.4 Bootstrap 下拉菜单(Dropdown)插件

文章目录 Bootstrap 下拉菜单&#xff08;Dropdown&#xff09;插件用法在导航栏内在标签页内 选项方法 Bootstrap 下拉菜单&#xff08;Dropdown&#xff09;插件 Bootstrap 下拉菜单 这一章讲解了下拉菜单&#xff0c;但是没有涉及到交互部分&#xff0c;本章将具体讲解下拉菜…

(链表) 剑指 Offer 58 - I. 翻转单词顺序 ——【Leetcode每日一题】

❓剑指 Offer 06. 从尾到头打印链表 难度&#xff1a;简单 输入一个链表的头节点&#xff0c;从尾到头反过来返回每个节点的值&#xff08;用数组返回&#xff09;。 示例 1&#xff1a; 输入&#xff1a;head [1,3,2] 输出&#xff1a;[2,3,1] 限制&#xff1a; 0 < 链…

自己实现数据结构,有更好的可操作性

https://leetcode.cn/problems/asteroid-collision/ 就是说&#xff0c;非得用人家写的栈不可么 stl 的 stack&#xff0c;没办法随机访问&#xff0c;用 vector 或者再不济数组&#xff0c;就好了&#xff0c;非要用 stl 的&#xff0c;就导致还得有另一个 vector 维护向左走…

多目标灰狼算法(MOGWO)的Matlab代码详细注释及难点解释(佳点集改进初始种群的MOGWO)

目录 一、外部种群Archive机制 二、领导者选择机制 三、多目标灰狼算法运行步骤 四、MOGWO的Matlab部分代码详细注释 五、MOGWO算法难点解释 5.1 网格与膨胀因子 5.2 轮盘赌方法选择每个超立方体概率 为了将灰狼算法应用于多目标优化问题,在灰狼算法中引入外部种群Archi…

Spring MVC -- 返回数据(静态页面+非静态页面+JSON对象+请求转发与请求重定向)

目录 1. 返回静态页面 2. 返回非静态页面 2.1 ResponseBody 返回页面内容 2.2 RestController ResponseBody Controller 2.3 示例:实现简单计算的功能 3. 返回JSON对象 3.1 实现登录功能&#xff0c;返回 JSON 对象 4. 请求转发(forward)或请求重定向(redirect) 4.1 请…

Day 63 : 集成学习之 AdaBoosting (1. 带权数据集)

63.1 AdaBoosting基本算法&#xff1a;先从初始训练集训练一个弱学习器&#xff0c;在根据弱学习器的表现对训练样本进行权重调整&#xff0c;经过若干轮之后&#xff0c;将得到一组分类器&#xff0c;将数据输入这组分类器后会得到一个综合且准确的的分类结果。“三个臭皮匠&a…