总结5..

#include<stdio.h>
struct nb {//结构体列队
int x, y;//x为横坐标,y为纵坐标
int s, f;//s为步数,//f为方向
}link[850100];
int n, m, x, y, p, q, f;
int hard = 1, tail = 1;
int a[52][52], b[52][52], book[52][52][91];
int main()
{
int i, j;
scanf("%d %d", &n, &m);//输入矩阵大小
for (i = 1; i <= n; i++)
for (j = 1; j <= m; j++)
scanf("%d", &a[i][j]);
for(i=1;i<n;i++)//特殊处理只有4个格子组成的正方形都为0,机器人才能通过
for (j = 1; j < m; j++)
{
if (a[i][j] == 0 && a[i][j + 1] == 0 && a[i + 1][j] == 0 && a[i + 1][j + 1] == 0)
b[i][j] = 0;
else
b[i][j] = 1;
}
scanf("%d %d %d %d", &x, &y, &p, &q);//输入起点,终点
getchar();
scanf("%c", &f);//起始朝向
if (x == p && y == q)//特判起点终点是否重合
{
printf("0");
return 0;
}
//起始点入队
link[tail].x = x; link[tail].y = y;
link[tail].s = 0;
if (f == 'E') link[tail].f = 1;//f=1表示东方向,2表示南,3表示西,4表示北
else if(f == 'S') link[tail].f = 2;
else if (f == 'W') link[tail].f = 3;
else link[tail].f = 4;
book[x][y][link[tail].f] = 1; tail++;
int flag = 0;//flag用于判断是否找到出口
//广搜核心代码
while (hard < tail)
{
//先广度搜索方向
for (i = 0; i <= 1; i++)
{
int tf;
if (i == 0)//0表示左转
{
tf = link[hard].f + 1;
if (tf == 5)
tf = 1;
}
else//右转
{
tf = link[hard].f - 1;
if (tf == 0)
tf = 4;
}
if (book[link[hard].x][link[hard].y][tf] == 0)//如果这个方向没有入队,进行入队操作
{
link[tail].x = link[hard].x;
link[tail].y = link[hard].y;
link[tail].s = link[hard].s + 1;
link[tail].f = tf;
book[link[hard].x][link[hard].y][tf] = 1;
tail++;
}
}
//广度搜索不同移动距离
for (i = 3; i >= 1; i--)
{
int tx, ty;
int fl = 0;//判断移动期间是否遇到障碍物,0为没有遇到
if (link[hard].f == 1)//link[hard].f大小不同移动方向不同
{
tx = link[hard].x;
ty = link[hard].y + i;
if (tx<1 || tx>n - 1 || ty<1 || ty>m - 1)//是否越界
continue;
for (j = link[hard].y + 1; j <= ty; j++)//判断是否遇到障碍物
{
if (b[tx][j] == 1)
{
fl = 1;
break;
}
}
}
else if (link[hard].f == 2)
{
tx = link[hard].x + i;
ty = link[hard].y;
if (tx<1 || tx>n - 1 || ty<1 || ty>m - 1)//是否越界
continue;
for (j = link[hard].x + 1; j <= tx; j++)//判断是否遇到障碍物
{
if (b[j][ty] == 1)
{
fl = 1;
break;
}
}
}
else if (link[hard].f == 3)
{
tx = link[hard].x;
ty = link[hard].y - i;
if (tx<1 || tx>n - 1 || ty<1 || ty>m - 1)//是否越界
continue;
for (j = link[hard].y - 1; j >= ty; j--)//判断是否遇到障碍物
{
if (b[tx][j] == 1)
{
fl = 1;
break;
}
}
}
else
{
tx = link[hard].x - i;
ty = link[hard].y;
if (tx<1 || tx>n - 1 || ty<1 || ty>m - 1)//是否越界
continue;
for (j = link[hard].x - 1; j >= tx; j--)//判断是否遇到障碍物
{
if (b[j][ty] == 1)
{
fl = 1;
break;
}
}
}
if (book[tx][ty][link[hard].f] == 0 && fl == 0)//如果这个点的这个方向第一次遇到且到这个点期间没有遇到障碍物
{
//入队操作+标记
link[tail].x = tx;
link[tail].y = ty;
link[tail].s = link[hard].s + 1;
link[tail].f = link[hard].f;
book[tx][ty][link[tail].f] = 1;
tail++;
if (tx == p && ty == q)//如果找到出口标记并提前结束
{
flag = 1;
break;
}
}
}
hard++;//一个点广搜完,判断下一个点
if (flag == 1)//找到出口,提前结束
break;
}
if (flag == 1)//找到输出最短时间
printf("%d", link[tail - 1].s);
else//没找到输出-1
printf("-1");
return 0;
}
n 个人围成一圈,从第一个人开始报数,数到 mm 的人出列,再由下一个人重新从 11 开始报数,数到 mm 的人再出圈,依次类推,直到所有的人都出圈,请输出依次出圈人的编号
#include <stdio.h>
int main() {
int n, m;
scanf("%d %d", &n, &m);
int queue[1000];
// 初始化队列,将1到n的人放入队列
for (int i = 0; i < n; i++) {
queue[i] = i + 1;
}
int front = 0;
int rear = n;
while (front < rear) {
for (int i = 1; i < m; i++) {
queue[rear] = queue[front];
rear++;
front++;
}
printf("%d ", queue[front]);
front++;
}
return 0;
}
学了点动态规划和 记忆化,并做了几道相关的题,练习分叉树相关题
相关文章:
总结5..
#include<stdio.h> struct nb {//结构体列队 int x, y;//x为横坐标,y为纵坐标 int s, f;//s为步数,//f为方向 }link[850100]; int n, m, x, y, p, q, f; int hard 1, tail 1; int a[52][52], b[52][52], book[52][52][91]; int main() { …...
Java 在包管理与模块化中的优势:与其他开发语言的比较
在开发复杂的、规模庞大的软件系统时,包管理和模块化设计起着至关重要的作用。它们不仅决定了代码的组织和可维护性,还直接影响到团队协作效率、扩展性和性能。在众多编程语言中,Java 凭借其成熟的生态系统、强类型系统和标准化的包管理机制&…...
LLMs(大型语言模型)的多智能体:Auto-GPT
LLMs(大型语言模型)的多智能体:Auto-GPT 是指在一个系统中集成多个具有不同能力、角色和任务的智能体,这些智能体能够相互协作、沟通和交互,以共同完成复杂的任务或解决复杂的问题。每个智能体都可以被视为一个独立的实体,具有自己的策略、目标和知识库,通过相互之间的…...
CPU狂飙900%如何分析?怎么定位?怎么溯源处理
当你的服务器CPU飙升到900%,系统卡顿、响应迟缓、业务受阻,这种令人焦虑的场景是否让你束手无策?别慌,这并不是世界末日,只要掌握正确的分析与定位方法,就能快速找到问题根源,并有效解决。 CPU…...
Excel 技巧17 - 如何计算倒计时,并添加该倒计时的数据条(★)
本文讲如何计算倒计时,并添加该倒计时的数据条。 1,如何计算倒计时 这里也要用公式 D3 - TODAY() 显示为下面这个样子的 然后右键该单元格,选 设置单元格格式 然后点 常规 这样就能显示出还书倒计时的日数了。 下拉适用到其他单元格。 2&a…...
Java中的阻塞队列--以LinkedBlockingQueue为例
顾名思义,就是一种在对队列进行出队或者入队操作的时候会阻塞的队列。下面使用JDK17中的LinkedBlockingQuece进行简单的介绍。 LinkedBlockingQueue基本结构 LinkedBlockingQueue的主要结构以及构成的数据结构如下图所示。具体来说包括 存储元素的链表࿰…...
16.5万煤气柜柜位计故障分析
一、事故经过: 2015年8月14日20点45分,16.5万立煤气柜柜顶油封溢流口有大量油液溢出,此时雷达柜位计在计算机上示值为63.79米,由于接近傍晚天色较暗,岗位操作员并未及时发现这一异常状况。22点45分左右&…...
高效沟通驱动LabVIEW项目成功
在LabVIEW项目开发中,由于涉及软件、硬件及多方协作,项目沟通效率的高低直接影响开发进度与最终质量。不明确的需求、信息传递中的误解以及跨部门协作的阻碍,常导致项目延误甚至失败。因此,建立高效的沟通机制,确保信息…...
大模型之三十三- 开源Melo 语音合成
大模型之三十三- 开源Melo 语音合成 文本到语音(TTS)系统从基于基础音素的模型演变成复杂的端到端神经方法,这种方法可以直接将文本转换为语音。这一变革得益于深度学习的进步和计算能力的提升,已经在语音的自然度、韵律控制和跨语言能力方面取得了重大进展 。现代TTS系统…...
论文复现:四轮转向车辆后轮转角控制方法研究
写在前面,主要参考以下这篇文章,并复现了其中几种后轮转角控制方法。 一、什么是四轮转向 顾名思义,四轮转向指的是四个轮子都能转向,都能转动。当驾驶员操作方向盘进行前轮转向时,后轮按照特定算法给出的转角跟着转动…...
【UFEN】基于多层特征融合和多任务学习的多模态情感分析
abstract 当前多模态情感分析面临的主要挑战包括:1、模型如何在单一模态中提取情感信息,并实现多模态信息的互补传输;2、在单一模态中体现的情绪与多模态标签不一致的情况下,如何输出相对稳定的预测;3、当单模态信息不…...
uniapp的插件开发发布指南
Hbuilder创建项目 项目根目录创建uni_modules 开发组件 发布到插件市场 填写发布说明(未登录需要登录) 点击提交 在终端可以看到 发布成功! 插件市场查看...
【Linux系统】—— 编译器 gcc/g++ 的使用
【Linux系统】—— 编译器 gcc/g 的使用 1 用 gcc 直接编译2 翻译环境2.1 预处理(进行宏替换)2.2 编译(生成汇编)2.3 汇编(生成机器可识别代码)2.4 链接2.5 记忆小技巧2.6 编译方式2.7 几个问题2.7.1 如何理…...
[微服务]注册中心优化
环境隔离 企业实际开发中,往往会搭建多个运行环境,例如: 开发环境测试环境预发布环境生产环境 这些不同环境之间的服务和数据之间需要隔离。 还有的企业中,会开发多个项目,共享nacos集群。此时,这些项目…...
C++ ——— 模拟实现 vector 类
目录 vector 类的框架 无参数的构造函数 析构函数 获取有效数据个数 获取容量 重载 [] 运算符 可读可写版本 只可读版本 扩容 尾插 实现迭代器 可读可写版本 只可读版本 自定义设置size长度和内容 在任意位置插入 删除任意位置的数据 赋值重载 vector 类的框…...
大华相机DH-IPC-HFW3237M支持的ONVIF协议
使用libONVIF C库。 先发现相机。 配置 lib目录 包含 编译提示缺的文件,到libonvif里面拷贝过来。 改UDP端口 代码 使用msvc 2022的向导生成空项目,从项目的main示例拷贝过来。 CameraOnvif.h #pragma once#include <QObject> #include &l…...
【Java】常用工具类方法:树形结构、获取IP、对象拷贝、File相关、雪花算法等
1、生成子孙树 /*** 生成子孙树** param dataArray 遍历所有数据, 每个数据加到其父节点下* return 子孙树json*/public static JSONArray makeTree(JSONArray dataArray) {List<Map<String, Object>> data new ArrayList<>();for (int i 0; i < dataAr…...
豆瓣电影Top250的数据采集与可视化分析(scrapy+mysql+matplotlib)
文章目录 豆瓣电影Top250的数据采集与可视化分析(scrapy+mysql+matplotlib)写在前面数据采集(Visual Studio Code+Navicat)1.观察网页信息2.编写Scrapy代码(Visual Studio Code)2.1 创建Scrapy项目`doubanProject`2.2 创建爬虫脚本`douban.py`2.3 修改`douban.py`的代码2…...
2024微短剧行业生态洞察报告汇总PDF洞察(附原数据表)
原文链接: https://tecdat.cn/?p39072 本报告合集洞察从多个维度全面解读微短剧行业。在行业发展层面,市场规模与用户规模双增长,创造大量高收入就业岗位并带动产业链升级。内容创作上,精品化、品牌化趋势凸显,题材走…...
PHP语言的数据库交互
PHP语言的数据库交互 引言 在现代Web开发中,数据库是存储和管理应用数据的重要组成部分。随着互联网的快速发展,网站和应用程序对数据存储和操作的需求变得越来越复杂。PHP作为一种广泛使用的服务器端脚本语言,提供了多种数据库交互的方法&…...
无机布防火卷帘门价格怎么算?按尺寸定制,按需报价
无机布防火卷帘门作为建筑防火分区的核心设备,价格一直是工程采购的关注重点。很多用户在询价时,会发现不同厂家的报价差异较大,这是因为无机布防火卷帘门的价格并非按统一单价计算,而是完全根据项目的实际需求定制化核算。 &…...
如何删除论文脚注横线的方法——视图-草稿-引用——显示备注——删除脚注分隔符-即可。
如何删除论文脚注横线的方法——视图-草稿-引用——显示备注——删除脚注分隔符-即可。 Word中脚注线不会删?这里有妙招!,教育,职业教育,好看视频...
Godot中型项目工程化实践:目录规范、资源引用与状态管理
1. 这不是续集,而是项目落地的分水岭“Godot 游戏引擎项目(二)”——看到这个标题,很多人第一反应是:“哦,上一篇讲了环境搭建和Hello World,这篇该讲节点树和信号了?”但我在带三个…...
BetterJoy完整配置指南:5分钟让Switch手柄在PC上完美运行
BetterJoy完整配置指南:5分钟让Switch手柄在PC上完美运行 【免费下载链接】BetterJoy Allows the Nintendo Switch Pro Controller, Joycons and SNES controller to be used with CEMU, Citra, Dolphin, Yuzu and as generic XInput 项目地址: https://gitcode.c…...
UE5 Cesium项目里,如何把默认的飞行Pawn换成建筑漫游Pawn?保姆级迁移教程
UE5 Cesium项目建筑漫游Pawn迁移实战:从飞行模式到精细化浏览的完整指南当你在UE5中结合Cesium插件构建数字孪生场景时,DynamicPawn提供的全球飞行体验令人印象深刻。但当视角聚焦到单体建筑或室内空间时,那种仿佛操控无人机般的操作方式就显…...
如何用免费工具解锁QQ音乐、网易云音乐等加密格式:3分钟解决音乐播放限制
如何用免费工具解锁QQ音乐、网易云音乐等加密格式:3分钟解决音乐播放限制 【免费下载链接】unlock-music 在浏览器中解锁加密的音乐文件。原仓库: 1. https://github.com/unlock-music/unlock-music ;2. https://git.unlock-music.dev/um/web…...
Armv9-A架构解析:SVE/SME与安全增强技术
1. Armv9-A架构演进与核心特性全景Armv9-A架构代表了Arm公司面向未来十年计算需求的设计哲学,其核心在于三个维度的突破:性能、安全与专用计算。作为长期从事Arm架构开发的工程师,我见证了从Armv7到Armv9的技术跃迁。与固定宽度向量指令的NEO…...
DeepSeek代码审查配置避坑清单:12个被99%团队忽略的关键参数(含生产环境校验脚本)
更多请点击: https://intelliparadigm.com 第一章:DeepSeek代码审查功能概览 DeepSeek 提供的代码审查(Code Review)能力基于其大语言模型对编程语义、安全规范与工程实践的深度理解,支持多语言静态分析、漏洞识别、可…...
3步掌握B站缓存视频转换:m4s-converter完整指南
3步掌握B站缓存视频转换:m4s-converter完整指南 【免费下载链接】m4s-converter 一个跨平台小工具,将bilibili缓存的m4s格式音视频文件合并成mp4 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter 你是否在B站缓存了大量珍贵的学习资料…...
初创团队如何借助Taotoken以低成本快速验证AI产品创意
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 初创团队如何借助Taotoken以低成本快速验证AI产品创意 对于资源有限的初创团队而言,验证一个AI产品创意的核心挑战往往…...
