【ybt】【基算 广搜 课过 例3】立体推箱子

triton-inference-server-ge-backend 新版本特性 v2.3.0 支持对全局、session、graph 的options进行添加,从而进一步调优模型,相关案例请参考 性能调优方法论。 支持采用分档模式将符合条件模型转化为静态图,提高吞吐性能。 补充如何采用分档模式+锁核+调整精度,进一步提高性能。 在AscendHub下载镜像时需确认好版本,若使用旧版本镜像,需要手工下载源码编译生成新的backend后才能支持新特性。 版本特性 v2.2.0 支持从onnx文件读取模型输入输出信息, config中若无指定input,output,将会自动从文件中读取; 调整动态图在多实例下使用多Session方式,提高并发吞吐(显存占用会增高); 支持动态batch场景小batch动态合并特性,配合多Session,提高吞吐; 补充调优方法论以及cnclip模型的最佳实践; 支持多模型特性,可支持同时拉起多个模型,提高显存利用率; 支持非0轴动态shape场景; 支持TensorFlow的pb文件。 立即下载

立体推箱子

题目链接:立体推箱子


题目描述

题目2
题目2

解题思路

这道题很容易可以想到是广搜。

难点在于如何表示出躺下的情况。

但其实只需要记录两个点中的一个,然后用一个状态变量就可以表示出一整个箱子。

主要是状态的转移不太好推,要有耐心。

其他的注意一些细节就可以了。

code

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;

const int xn[4][5]={{},{0,-1,0,2,0},{0,-1,0,1,0},{0,-2,0,1,0}};
const int yn[4][5]={{},{0,0,2,0,-1},{0,0,1,0,-2},{0,0,1,0,-1}};
const int tn[4][5]={{},{0,3,2,3,2},{0,2,1,2,1},{0,1,3,1,3}};

int n,m;
int ex,ey;
int v[510][510][5];
char a[510][510];

struct abc{
	int x,y,t,s;
}f[2500010];

bool check(int x,int y,int t)
{
	if(x<1||x>n||y<1||y>m)
		return 0;
	if(t==1)
	{
		if(a[x][y]=='E')
			return 0;
		if(a[x][y]=='#')
			return 0;
	}
	if(t==2)
	{
		if(a[x][y]=='#')
			return 0;
		if(a[x][y-1]=='#')
			return 0;
	}
	if(t==3)
	{
		if(a[x][y]=='#')
			return 0;
		if(a[x-1][y]=='#')
			return 0;
	}
	return 1; 
}

bool bfs()
{
	int hd=0,tl=1;
	while(hd<tl)
	{
		hd++;
		for(int i=1;i<=4;i++)
		{
			int x=f[hd].x+xn[f[hd].t][i];
			int y=f[hd].y+yn[f[hd].t][i];
			int t=tn[f[hd].t][i];
			if(check(x,y,t)&&!v[x][y][t])
			{
				v[x][y][t]=1;
				f[++tl]=(abc){x,y,t,f[hd].s+1};
				if(x==ex&&y==ey&&t==1)
				{
					cout<<f[tl].s<<endl;
					return 0;
				}
			}
		}
	}
	return 1;
}

void star()
{
	memset(v,0,sizeof(v));
	for(int i=1;i<=n;i++)
		for(int j=1;j<=m;j++)
		{
			if(a[i][j]=='X')
			{
				f[1].x=i,f[1].y=j,f[1].s=0;
				if(a[i][j-1]=='X')
					f[1].t=2;
				else if(a[i-1][j]=='X')
					f[1].t=3;
				else
					f[1].t=1;
				v[i][j][f[1].t]=1;
			}
			if(a[i][j]=='O')
				ex=i,ey=j;
		}
}

int main()
{
	while(cin>>n>>m)
	{
		if(n==0&&m==0)
			return 0;
		for(int i=1;i<=n;i++)
		{
			for(int j=1;j<=m;j++)
			{
				a[i][j]=getchar();
				while(a[i][j]!='#'&&a[i][j]!='.'&&a[i][j]!='X'&&a[i][j]!='E'&&a[i][j]!='O')
					a[i][j]=getchar();
			}
		}
		star();
		if(bfs())
			cout<<"Impossible"<<endl;
	}	
}
后端开发 Docker4.99.0 AppleSilicon 苹果芯片 Mac 安装包 本资源为 Docker Desktop 4.99.0 苹果芯片(Apple Silicon)专用安装包,原生适配 M 系列 Mac,可快速搭建本地容器开发环境,支持镜像拉取、容器编排、项目打包部署。适合后端开发、运维、全栈开发者,用于本地微服务、测试环境、项目容器化开发。 立即下载

相关推荐

王爽《汇编语言》课程设计2(不涉及软盘版本)

assume cs:code,ds:data,ss:stack stack segment db 128 dup (0) stack ends data segment db 256 dup (0) data ends code segment start: mov ax,stack mov ss,ax mov sp,128 ...

weixin_41944412的博客 1178

【YBT高效进阶】1基础算法/5广度优先搜索/3立体推箱子

【YBT高效进阶】1基础算法/5广度优先搜索/3立体推箱子 内存限制:256 MiB 时间限制:1000 ms 标准输入输出 题目类型:传统 评测方式:文本比较 题目描述 有一个 N*M 的矩阵,每个位置可能是硬地(用 . 表示),易碎地面(用 E 表示),禁地(用 # 表示),起点(用 X 表示),终点(用 O 表示)。 你的任务是操作一个 112 的长方体。 这个长方体在地面上有两种放置方式," 立 " 在地面上( 11的面接触地面)或者 " 躺 " 在地面上( 12的面接触地面)。 在每一步操作中,可

weixin_46975572的博客 309

ROS应用之如何配置RTOS满足机器人系统中的实时要求

实时操作系统(RTOS)基本概念实时操作系统(RTOS)是设计用于实时应用的操作系统,其主要目标是在确定的时间内完成任务。RTOS的任务调度算法和优先级控制机制能够确保高优先级任务按时完成。精确的传感器数据采集:传感器数据需要在规定时间内采集并传输给控制系统。快速响应外部事件:对于控制系统,需要确保指令在最短的时间内得到响应。任务的调度周期:任务的周期可以通过公式计算,其中 ftask 是任务的调度频率。优先级分配。

weixin_68094467的博客 1008

【ybt高效进阶1-5-3】立体推箱子

有个 1×1×2 的长方体,每次我们可以沿着贴着地面的四条棱的其中一条滚九十度。 然后长方体有立着和躺着两个状态。(就是一个格子贴着地面和两个格子贴着地面) 然后网格中,一些点不能走,一些点不能让长方体立起来。 问你从起点(可以立也可能躺)到终点(一定要立)最少步数。 没有就输出 Impossible。

欢迎您的光顾awa 255

OCS2 移动机械臂深度解析:ocs2_mobile_manipulator 与 ocs2_mobile_manipulator_ros 源码全拆解

摘要:本文深入解析OCS2移动机械臂MPC控制框架的两个核心工具包。ocs2_mobile_manipulator负责算法建模,通过MobileManipulatorInterface统一构建最优控制问题,支持4种机械臂模型并实现自动维度推导;ocs2_mobile_manipulator_ros负责ROS集成,包含MPC求解、虚拟跟踪等4个核心节点。文章详细剖析了工具包分工、最优控制建模架构(含动力学、代价约束设计)、ROS运行管线、参数配置映射,并提供了高效的源码阅读顺序建议,帮助开发者快速掌握移动机械

m0_73309445的博客 655

扫地机器人:从仿真到决策,一个完整SLAM导航系统的自研之路

本文详细记录了从零开始自研扫地机器人SLAM导航系统的全过程,涵盖ROS-Gazebo仿真系统搭建、地图预处理优化、全覆盖规划算法迭代等关键技术。通过三次算法升级,最终实现92%的清洁效率,并分享DWA调参、状态机设计等实战经验,为开发者提供从仿真到落地的完整解决方案。

weixin_29053695的博客 352

【BFS】Ybt_立体推箱子

这题写的真的心累。 首先是RE,内存超限。 遂重构了一次代码。 结果WA了。 然后叫人看了好久发现是输入的问题,枯了。 题目 解 大模拟——BFS—— 各种情况十分琐碎。 我们将箱子横着归为类型1,竖着类型2,立着类型3。 打个四个方向处理的表。 代码 #include <cstdio> #include <cstring> #include <iostream> #include <queue> using namespace std; int

鲤の游 175

汽车TARA分析实战:从威胁建模到安全需求落地的完整指南

在汽车电子电气系统开发中,威胁分析与风险评估(TARA)是确保功能安全与网络安全的核心方法论。其原理在于通过结构化的流程,系统性地识别资产、分析威胁场景并评估风险,旨在将安全理念前置,从设计源头规避风险。这一过程的技术价值在于将模糊的安全担忧转化为可量化、可追溯的工程需求,从而指导资源精准投放,是符合ISO 26262和ISO/SAE 21434标准要求的关键实践。其应用场景贯穿智能汽车从概念设计到系统开发的各个阶段,尤其对于涉及自动驾驶、智能座舱、车云通信等复杂功能的域控制器开发至关重要。本文聚焦于TAR

weixin_42706667的博客 304

【ybt2021.11.12】T2 字典之序

T2 字典之序 link 解题思路 考虑贪心。 在选每个字母的时候要保证它的后面有所有没有出现过的字母。 每次从后往前找到直到每个未出现过字母都存在,记录下标。 在上一次操作的下标后一位到找到的下标之间取最小的字母。 可以保证这样找到的字符串字典序最小。 code #include<iostream> #include<cstring> #include<cstdio> #include<string> using namespace std; stri

你...你不要过来啊!!! 780

C# MVVM的“核武器”:CommunityToolkit.Mvvm的RelayCommand实战全解

你默默打开VS:“该用RelayCommand的‘量子纠缠’魔法了!用户点击按钮无响应,调试器显示命令未绑定,但代码看起来完美无缺。“我的MVVM应用?那可是能穿越线程的命令量子计算机!异步操作阻塞了UI线程,用户界面变成“加载中”死循环。:UI与业务逻辑通过命令“量子隧道”解耦。:所有长时间操作自动进入“量子跃迁”模式。:携带任意上下文的“量子信封”传递。:命令可用性随数据变化实时同步。

java专栏 663

《网络摄像机实战⑦:嵌入式端AWS KVS IoT SDK 库编译与测试全流程-君正/瑞芯微/全志(超详细指南)》

本文介绍了AWS音视频和物联网解决方案的核心组件与集成方法。主要内容包括:1)Amazon Kinesis Video Streams(KVS)提供的WebRTC托管服务,支持实时音视频流传输与双向交互;2)AWS IoT云服务实现设备连接与集成;3)详细说明了KVS WebRTC库的编译过程,包括源代码下载、CMake配置和依赖库生成;4)KVS Producer库的集成方法,重点阐述了存储空间调整和mbedtls版本适配等关键修改点。文章为开发者提供了AWS音视频和物联网服务的技术实现指南,特别针对嵌入

lvj_158的专栏 109

【ybt】【树形DP】【例题2】结点覆盖

结点覆盖 LinkLinkLink 解题思路 这是一道树形DP。 设 fi,0f_{i,0}fi,0​ 表示以 iii 为根的子树全部被覆盖,iii 的父亲被选的最小值。 fi,1f_{i,1}fi,1​ 表示 iii 被选的最小值。 fi,2f_{i,2}fi,2​ 表示 iii 的儿子被选在最小值。 code #include<iostream> #include<cstdio> using namespace std; int n; int a[2010]; int f[

你...你不要过来啊!!! 543

8.26华为OD机试真题 新系统 - 仓库查询 (Java/Py/C/C++/Js/Go)

8.26华为OD机试真题 新系统 - 仓库查询 (Java/Py/C/C++/Js/Go)

算法大师! 1736

【ybt】【数据结构 RMQ 课过 例3】与众不同

与众不同 题目链接:YbtOJ 解题思路 设 lastilast_ilasti​ 表示 iii 上一次出现的位置。 设 preipre_iprei​ 表示以 iii 结尾的最长完美序列的启示位置,显然 prei=max⁡(prei−1,lastai)pre_i=\max(pre_{i-1},last_{a_i})prei​=max(prei−1​,lastai​​) 。 我们先处理出 lastlastlast 和 preprepre ,然后二分出一个 lenlenlen,lenlenlen 的左边可以直

你...你不要过来啊!!! 517

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

SAP B1中文培訓教材_SDK

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

【冲刺 NOIP2022 模拟赛 B 组 Day5】B. 选择人员

【冲刺 NOIP2022 模拟赛 B 组 Day5】B. 选择人员

你...你不要过来啊!!! 461

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

【ybt】【状压DP】【例题4】炮兵阵地

炮兵阵地 LinkLinkLink 解题思路 设 fi,j,kf_{i,j,k}fi,j,k​ 表示第 iii 行,第 iii 行状态为 jjj ,第 i−1i-1i−1 行状态为 kkk 的情况最大值。 枚举 lll 表示第 n−2n-2n−2 行的状态,在这 333 行状态都不重叠的前提下,状态转移方程如下: fi,j,k=max⁡(fi,k,l)f_{i,j,k}=\max(f_{i,k,l})fi,j,k​=max(fi,k,l​) code #include<iostream> #

你...你不要过来啊!!! 443

VB摄像头监控

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

【ybt】【状压DP】【例题1】种植方案

种植方案 LinkLinkLink 解题思路 状压 DPDPDP 模板题。 code #include<iostream> #include<cstdio> using namespace std; const int mod=1e8; int n,m; int a[20]; int q[1<<12],tot; int f[20][1<<12]; int main() { cin>>n>>m; for(int i=1;i&

你...你不要过来啊!!! 396

【冲刺 NOIP2022 模拟赛 B 组 Day5】A. 数字计数

【冲刺 NOIP2022 模拟赛 B 组 Day5】A. 数字计数

你...你不要过来啊!!! 371

【ybt】【数据结构 树状数组 课过 例3】严格上升子序列数

严格上升子序列数 题目链接:YbtOJ 解题思路 我们设 fi,jf_{i,j}fi,j​ 表示以 iii 结尾,长度为 jjj 的序列数。 如果直接暴力做,那是 O(n3)O(n^3)O(n3) 的时间复杂度。 我们可以离散化,然后用树状数组维护每一种方案数的情况。 其实和逆序对挺像的说(无端感受) code #include<algorithm> #include<iostream> #include<cstring> #include<cstdio>

你...你不要过来啊!!! 352

【ybt】【基算 深搜 课过 例3】虫食算

虫食算 题目链接:虫食算 感谢 @lzh@lzh@lzh 大佬的帮助 题目描述 解题思路 很明显这是一道深搜题 (不然它怎么会归到深搜专栏里呢) 。 可以搜索枚举每一个字母来寻找最佳答案。 但这样是 O(10n)O(10^n)O(10n) 的时间复杂度,肯定是过不了的,所以要加入剪枝。 如果当前情况已经不合法了,自然不能搜下去。 那么现在关键在于 check()check()check() 函数。 如果当前位三个数都被搜到过了,那么直接判断即可。但如果上一位有数未知,那么最多还可以对这一位贡献 111

你...你不要过来啊!!! 327

【ybt】【图论 强连通 课过 例1】有向图缩点

有向图缩点 题目链接:有向图缩点 题目描述 解题思路 强连通分量模板,用 TarjanTarjanTarjan 算法。 code #include<iostream> #include<cstdio> #include<queue> using namespace std; queue<int> q; int n,m; int ans; int tm,tt; int a[10010]; int v[10010]; int f[10010]; int d

你...你不要过来啊!!! 315

【ybt2021.11.12】T1 他的世界

T1 他的世界 link 解题思路 “暴力也能过” code #include<iostream> #include<cstdio> using namespace std; int T; int n,m; int main() { freopen("number.in","r",stdin); freopen("number.out","w",stdout); cin>>T; while(T--) { scanf("%d%d",&n,&

你...你不要过来啊!!! 314

【ybt】【数据结构 RMQ 课过 例4】矩阵最值

矩阵最值 题目链接:YbtOJ 解题思路 二维st表模板题。 code #pragma GCC optimize(2) #include<iostream> #include<cstdio> #include<cmath> #define int long long using namespace std; int n,m,T; int a[260][260]; int f[260][260][21][21]; signed main() { cin>&

你...你不要过来啊!!! 299

【ybt】【动态规划 区间 课过 例2】木板涂色

木板涂色 题目链接:YbtOJ/Luogu 解题思路 区间 DPDPDP 。 设 fl,rf_{l,r}fl,r​ 表示将区间 [l,r][l,r][l,r] 涂成目标形式的最小次数,转移方程如下: fl,r={minl<k≤r(fl,k−1+fk,r)(s[l]≠s[r])min(fl,r−1,fl+1,r)(s[l]=s[r]) f_{l,r}=\left\{ \begin{array}{l} min_{l<k\leq r}(f_{l,k-1}+f_{k,r})&(s[l]\ne

你...你不要过来啊!!! 287

【ybt】【基算 广搜 课过 例2】山峰和山谷

山峰和山谷 题目链接:山峰和山谷 题目描述 解题思路 广搜模板题。 注意是八连通。 只有低,则山峰 只有高,则山谷 如果周围有高有低,则非山峰也非山谷。 如果没高也没底,则即使山峰又是山谷。 code #include<iostream> #include<cstdio> using namespace std; const int xn[9]={0,0,1,0,-1,1,1,-1,-1}; const int yn[9]={0,1,0,-1,0,1,-1,1,-1}; i

你...你不要过来啊!!! 285

【ybt】【字符串 处理 课过 例3】单词替换

单词替换 题目链接:单词替换 题目描述 解题思路 从前往后扫,扫到被替换单词就输出替换单词,否则直接输出。 code /* =========================== 此代码无法过ybtoj的最后一个点 但是是本地答案没有问题 可能是编译环境不同 但是思路上没有任何问题 请见谅 =========================== */ #include<iostream> #include<cstdio> #include

你...你不要过来啊!!! 276
上一篇: 【ybt】【基算 广搜 课过 例2】山峰和山谷
下一篇: 【ybt】【基算 广搜 课过 例4】荆轲刺秦王
SSL_GYX
博客等级 码龄7年 103粉丝 297原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值