【ybt】【基算 广搜 课过 例5】电路维修

政府科技管理者如何提升区域科技成果转化项目的评价与筛选效率?.docx 科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。 立即下载

电路维修

题目链接:电路维修


题目描述

在这里插入图片描述
在这里插入图片描述

解题思路

这道题的难点无非在于改变格子后如何保存状态。

但其实根本没必要。

直接跑 s p f a spfa spfa 就可以了。

只是判断路径麻烦了一点。

卡常难了一点而已。

code

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

char pg[5]={' ','/','\\','\\','/'};
const int xg[5]={0,0,0,1,1};
const int yg[5]={0,0,1,0,1};
const int xn[5]={0,-1,-1,1,1};
const int yn[5]={0,-1,1,-1,1};

int T,n,m;
int ans;
char a[510][510];
int minn[510][510];

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

void bfs()
{
	int hd=0,tl=1;
	memset(minn,0x3f3f3f3f,sizeof(minn));
	minn[0][0]=0;
	f[1].x=f[1].y=f[1].s=0;
	while(hd!=tl)
	{
		hd=(hd+1)%1000000;
		if(f[hd].s>=ans)
			continue;
		if(f[hd].x==n&&f[hd].y==m)
		{
			if(ans>f[hd].s)
				ans=f[hd].s;
			continue;
		}
		for(int i=1;i<=4;++i)
		{
			int x=f[hd].x+xn[i];
			int y=f[hd].y+yn[i];
			int xx=f[hd].x+xg[i];
			int yy=f[hd].y+yg[i];
			if(x<0||x>n||y<0||y>m)
				continue;
			if(minn[x][y]>f[hd].s+(a[xx][yy]==pg[i]))
			{
				tl=(tl+1)%1000000;
				f[tl]=(abc){x,y,f[hd].s+(a[xx][yy]==pg[i])};
				minn[x][y]=f[tl].s;
			}
		}
	}
}

int main()
{
	scanf("%d",&T);
	while(T--)
	{
		scanf("%d%d",&n,&m);
		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]=getchar();
			}
		ans=0x3f3f3f3f;
		bfs();
		if(ans!=0x3f3f3f3f)
			printf("%d\n",ans);
		else
			printf("NO SOLUTION\n");
	}
}
[CSP-X2025山东小学组T4]勇者斗恶龙 [CSP-X2025山东小学组T4]勇者斗恶龙,动态规划 阅读详情

相关推荐

Unity热更实战:用YooAsset+HybridCLR实现小游戏资源与代码双更新(含避坑清单)

本文详细介绍了Unity小游戏开发中如何通过YooAsset与HybridCLR实现资源与代码双热更新方案。内容涵盖环境配置、架构设计、微信小游戏专项优化、热更代码工程化实践及真机调试技巧,帮助开发者解决审核周期长、紧急修复等痛点,提升更新效率与稳定性。

weixin_42520025的博客 501

【ybt高效进阶1-5-5】电路维修

就是有一块图分成很多个方格,路放在每个放着中的某一条对角线中,然后要你连通左上角和右下角。 问你最少要改变多少个方格对角线的位置,如果无法连通,则输出 NO SOLUTION。

欢迎您的光顾awa 244

射频功率放大器设计实战:从理论到Layout的全流程解析

本文以一款40W、960MHz LDMOS功率放大器为例,系统解析了从理论分析、仿真设计到版图实现的射频功率放大器设计全流程。内容涵盖AB类放大器选型、核心指标定义、稳定性分析、Load-Pull/源牵引仿真、史密斯圆图匹配、偏置网络设计,以及最终的谐波平衡仿真与版图电磁验证,为工程师提供了一套从理论到实践的完整设计方法论。

weixin_29266007的博客 249

【Ybtoj 第5章 例题5】电路维修【广搜】

解题思路 这道题不是太好想。 思考发现可以用点而不是格子记录状态。 如果两点之间没有电路相连,则需要旋转一次; 如果两点之间没有电路相连,则不需要旋转; 这样就可以一边bfs一边用spfa来找最优路径。 PS:注意点和格子的坐标差异,输入的是一个一个格子,但我们广搜时是一个点到一个点,所以要到n+1,m+1。 代码 #include <iostream> #include <cstdio> #include <algorithm> #include <...

在人间贩卖声音 217

Matlab使用GitHub的踩坑记录(持续更新)

Matlab使用git的踩坑记录前言Matlab设置Git的官方帮助文档系统配置新建Git两种代码管理方式典型源代码管理SVN分布式源代码管理 Git注意:SVN和Git都可以用GitHub创建新的库 前言 作为Git初学者,对Git的代码版本管理非常非常喜欢,给了我极大的安全感。特别是想到之前的几次Matlab、Latex和python的代码莫名其妙被折腾没了又没法找回的悲剧,决定慢慢的走入gi...

voluntry的博客 7296

大疆C板使用C610电调驱动M2006电机(hal库)

大疆C板使用C610电调驱动M2006电机,以及遇到代码没问题,但是电机死活不转的处理

qq_46210601的博客 6019

【Ybt OJ】[基础算法 第5章] 广度搜索 [后半章]

「「「基础算法」」」 第555章 广度搜索(((前333题))) 前半章linklinklink 目录: D.荆轲刺秦王 E.电路维修 F.逃离噩梦 又臭又长的codecodecode D.D.D. 例题444 荆轲刺秦王 洛谷linklinklink 分析: 由于一本通上的数据较水 可以直接bfsbfsbfs模拟 先找出起点终点的位置 然后把图转化成010101图 也就是可以直接看哪个位置 可以走 节省空间 方便处理 关于技能: 隐身:判断不合法时不用考虑010101图就行 瞬移:在方向数组里多加4

绫 391

WPF实现圆形菜单动态展开折叠效果

实现效果如下: 思路:根据子菜单个数计算旋转角度动态生成子菜单,并设置展开折叠动画。 步骤: 1、自定义按钮MyButton,建立展示图像属性DisplayImage public class MyButton : Button { public static readonly DependencyProperty DisplayImageProperty = DependencyProperty.Register("DisplayImage", typeof(

dnazhd的博客 3149

CSU训练分类

√√第一部分 基础算法(#10023 除外) 第 1 章 贪心算法 √√#10000 「一本通 1.1 例 1」活动安排 √√#10001 「一本通 1.1 例 2」种树 √√#10002 「一本通 1.1 例 3」喷水装置 √√#10003 「一本通 1.1 例 4」加工生产调度 √√#10004 「一本通 1.1 例 5」智力大冲浪 √√#10005 「一本通 1.1 练习 1」数列极差 √...

weixin_30314631的博客 1697

D16: OpenClaw + Notion API:知识管理新玩法

本文介绍了如何利用OpenClaw连接Notion API构建自动化知识管理系统。文章首先分析了传统知识管理的痛点,包括信息分散、更新不及时等问题,并对比了Notion与其他工具在API完整性、结构化程度等方面的优势。接着详细说明了Notion API的获取和授权流程,并设计了包含项目知识库、技术决策库和会议纪要库的三层架构系统。最后通过会议纪要自动归档的实战案例,展示了如何通过YAML配置实现从飞书会议到Notion的自动化知识沉淀流程。该方案能有效解决团队知识管理中的信息碎片化问题,提升协作效率。

刘一说的IT专栏 274

【YOLOv8系列】YOLOv8的webUI界面设计;通过Streamlit实现YOLOv8的可视化交互界面设计

但是我为了避免重复性的工作,且为了避免重复安装之前(安装pytorch和yolov8时)已经安装好的库,因此写了一个python脚本进行安装;需要提前在有网络连接的电脑上下载所有必要的依赖项,然后将这些文件传输到离线的机器上进行安装。脚本将自动跳过已安装的包,并安装其余的 .whl 文件。在离线的机器上,切换到包含下载好的文件的目录。证明我们的streamlit安装成功了。证明你的streamlit安装成功了。第一步:在有网络连接的电脑上下载。第二步:将下载的文件传输到离线机器。文件)传输到离线的机器上。

AnChenliang_1002的博客 1566

【ybt2021.11.12】T2 字典之序

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

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

AttributeError: module ‘lib‘ has no attribute ‘X509_V_FLAG_CB_ISSUER_CHECK‘解决方案

本文主要介绍了AttributeError: module ‘lib’ has no attribute 'X509_V_FLAG_CB_ISSUER_CHECK’解决方案,希望能对使用python的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 5万+

【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

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

【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

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

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

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

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

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

【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

【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】【基算 广搜 课过 例4】荆轲刺秦王
下一篇: 【ybt】【字符串 处理 课过 例1】数字翻转
SSL_GYX
博客等级 码龄7年 103粉丝 297原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值