当前位置: 首页 > news >正文

BFS 五香豆腐

题目描述

  经过谢老师n次的教导,dfc终于觉悟了——过于腐败是不对的。但是dfc自身却无法改变自己,于是他找到了你,请求你的帮助。
dfc的内心可以看成是5*5个分区组成,每个分区都可以决定的的去向,0表示继续爱好腐败,1表示改正这个不良的习惯。只有当25个分区都为1时,dfc才会改正腐败这个不良习惯。你有一根神奇的魔法棒,可以使点中的分区以及这个分区上下左右改变(1变0,0变1)。这根神奇的魔法棒只能使用6次了,请问你最少使用多少次才可以救醒这dfc。(使用超过6次则输出-1,表示dfc已经无药可救了)。(因为dfc实在太顽固不化,所以你要救醒他n次,但每次都有会获得由谢老师送的一根新的魔法棒,不过之前那根会消失)。

1561237337625616386.bmp

 

输入输出格式

输入格式:

  第一行有一个正整数n,代表数据中共有n组数据。
  以下若干行数据分为n组,每组数据有5行,每行5个字符。每组数据描述了25个分区的初始状态。各组数据间用一个空行分隔。

输出格式:

  输出数据一共有n行,每行有一个小于等于6的整数,它表示对于输入数据中对应的每组数据最少需要几步才能将救醒dfc。
  对于一个数据,如果无法在规定的条件救醒dfc,请输出“-1”。

输入输出样例

输入样例#1:

输入样例:
3
00111
01011
10001
11010
11100

11101
11101
11110
11111
11111

01111
11111
11111
11111
11111

输出样例#1:

输出样例:
3
2
-1

提示信息

  30%,n <= 5;
  100%,n <= 500。

神奇暴力:从目标状态扩展到所有状态,用位运算加速,卡点通过。

#pragma GCC optimize(2)
#include<bits/stdc++.h>
using namespace std;
int a[500001],temp[6][6];
map<int,int> b;
int main()
{int n;cin>>n;int head=0,tail=1;a[1]=33554431;b[33554431]=1;while(head<tail){head++;int tm,tm2;tm=tm2=a[head];if(b[tm2]-1>=6) continue;for(int i=5;i>=1;i--){for(int j=5;j>=1;j--){temp[i][j]=tm%2;tm/=2;}}for(int i=1;i<=25;i++){int x=(i-1)/5+1;int y=i-5*(x-1);int ans=0;if(temp[x][y]==1) ans-=(1<<(25-i));else ans+=(1<<(25-i));if(x+1<=5){if(temp[x+1][y]==1) ans-=(1<<(25-(i+5)));else ans+=(1<<(25-(i+5)));}if(x-1>=1){if(temp[x-1][y]==1) ans-=(1<<(25-(i-5)));else ans+=(1<<(25-(i-5)));}if(y+1<=5){if(temp[x][y+1]==1) ans-=(1<<(25-(i+1)));else ans+=(1<<(25-(i+1)));}if(y-1>=1){if(temp[x][y-1]==1) ans-=(1<<(25-(i-1)));else ans+=(1<<(25-(i-1)));}int tm3=tm2+ans;if(b[tm3]==0){b[tm3]=b[tm2]+1;a[++tail]=tm3;}}} for(int i=1;i<=n;i++){string s[6];int x=0;for(int j=1;j<=5;j++){cin>>s[j];for(int k=1;k<=5;k++){x*=2;x+=s[j][k-1]-'0';//cout<<x<<endl;}}cout<<b[x]-1<<endl;}return 0;
}

 

相关文章:

BFS 五香豆腐

题目描述 经过谢老师n次的教导&#xff0c;dfc终于觉悟了——过于腐败是不对的。但是dfc自身却无法改变自己&#xff0c;于是他找到了你&#xff0c;请求你的帮助。 dfc的内心可以看成是5*5个分区组成&#xff0c;每个分区都可以决定的的去向&#xff0c;0表示继续爱好腐败&…...

opencv实战项目 手势识别-手势控制键盘

手势识别是一种人机交互技术&#xff0c;通过识别人的手势动作&#xff0c;从而实现对计算机、智能手机、智能电视等设备的操作和控制。 1. opencv实现手部追踪&#xff08;定位手部关键点&#xff09; 2.opencv实战项目 实现手势跟踪并返回位置信息&#xff08;封装调用&am…...

1.作用域

1.1局部作用域 局部作用域分为函数作用域和块作用域。 1.函数作用域: 在函数内部声明的变量只能在函数内部被访问&#xff0c;外部无法直接访问。 总结&#xff1a; (1)函数内部声明的变量&#xff0c;在函数外部无法被访问 (2)函数的参数也是函数内部的局部变量 (3)不同函数…...

黑马B站八股文学习笔记

视频地址&#xff1a;https://www.yuque.com/linxun-bpyj0/linxun/vy91es9lyg7kbfnr 大纲 基础篇 基础篇要点&#xff1a;算法、数据结构、基础设计模式 1. 二分查找 要求 能够用自己语言描述二分查找算法能够手写二分查找代码能够解答一些变化后的考法 算法描述 前提&a…...

前端常用的上传下载文件的几种方式,直接上传、下载文件,读取.xlsx文件数据,导出.xlsx数据

一、通过调用接口下载文件 const onExport async () > {try {let res await axios.request({method: POST,url: 请求地址,responseType: blob,params: { data: null },headers: { Authorization: Bearer UserModule.token },//看看请求是否需要token});let reader new…...

FPGA应用学习笔记--时钟域的控制 亚稳态的解决

时钟域就是同一个时钟的区域&#xff0c;体现在laways语句边缘触发语句中&#xff0c;设计规模增大就会导致时钟不同步&#xff0c;有时差&#xff0c;就要设计多时钟域。 会经过与门的延时产生的新时钟域&#xff0c;这种其实不推荐使用&#xff0c;但在ascl里面很常见 在处理…...

AirServer是什么软件,手机屏幕投屏电脑神器

什么是 AirServer&#xff1f; AirServer 是适用于 Mac 和 PC 的先进的屏幕镜像接收器。 它允许您接收 AirPlay 和 Google Cast 流&#xff0c;类似于 Apple TV 或 Chromecast 设备。AirServer 可以将一个简单的大屏幕或投影仪变成一个通用的屏幕镜像接收器 &#xff0c;是一款…...

如何使用 AT+WEBSERVER 指令实现自定义的 Webserver html 网页配网

开启 AT 固件中的 Webserver 指令和 FS 指令支持 乐鑫官网发布的默认通用 AT 固件不支持 webserver 配网功能&#xff0c; 需要用户自己搭建 esp-at 环境&#xff0c;并在 sdkconfig 中开启 webserver AT 指令 和 FS 指令的支持&#xff0c; 如下图所示&#xff1a; 测试 AT 固…...

期权定价模型系列【4】—期权组合的Delta-Gamma-Vega中性

期权组合的Delta-Gamma-Vega中性 期权组合构建时往往会进行delta中性对冲&#xff0c;在进行中性对冲后&#xff0c;期权组合的delta敞口为0&#xff0c;此时期权组合仍然存在gamma与vega敞口。因此研究期权组合的delta-gamma-vega敞口中性是有必要的。 本文旨在对delta-gamma-…...

k8sday02

第四章 实战入门 本章节将介绍如何在kubernetes集群中部署一个nginx服务&#xff0c;并且能够对其进行访问。 Namespace ​ Namespace是kubernetes系统中的一种非常重要资源&#xff0c;它的主要作用是用来实现多套环境的资源隔离或者多租户的资源隔离。 ​ 默认情况下&…...

黑马头条项目学习--Day2: app端文章查看,静态化freemarker,分布式文件系统minIO

app端文章 Day02: app端文章查看&#xff0c;静态化freemarker,分布式文件系统minIOa. app端文章列表查询1) 需求分析2) 实现思路 b. app端文章详细1) 需求分析2) Freemarker概述a) 基础语法种类b) 集合指令&#xff08;List和Map&#xff09;c) if指令d) 运算符e) 空值处理f) …...

特语云用Linux和MCSM面板搭建 我的世界基岩版插件服 教程

Linux系统 用MCSM和DockerWine 搭建 我的世界 LiteLoaderBDS 服务器 Minecraft Bedrock Edition 也就是我的世界基岩版&#xff0c;这是 Minecraft 的另一个版本。Minecraft 基岩版可以运行在 Win10、Android、iOS、XBox、switch。基岩版不能使用 Java 版的服务器&#xff0c;…...

2023.8

编译 make install 去掉 folly armv8-acrc arrow NEON 相关链接 https://blog.csdn.net/u011889952/article/details/118762819 这里面的方案二&#xff0c;我之前也是用的这个 https://blog.csdn.net/zzhongcy/article/details/105512565 参考的此博客 火焰图 https://b…...

CSV文件编辑器——Modern CSV for mac

Modern CSV for Mac是一款功能强大、操作简单的CSV文件编辑器&#xff0c;适用于Mac用户快速、高效地处理和管理CSV文件。Modern CSV具有直观的用户界面&#xff0c;可以轻松导入、编辑和导出CSV文件。它支持各种功能&#xff0c;包括排序、过滤、查找和替换&#xff0c;使您能…...

全国各地区数字经济工具变量-文本词频统计(2002-2023年)

数据简介&#xff1a;本数据使用全国各省工作报告&#xff0c;对其中数字经济相关的词汇进行词频统计&#xff0c;从而构建数字经济相关的工具变量。凭借数字经济政策供给与数字经济发展水平的相关系数的显著性作为二者匹配程度的划分依据&#xff0c;一定程度上规避了数字经济…...

MacOS安装RabbitMQ

官网地址&#xff1a; RabbitMQ: easy to use, flexible messaging and streaming — RabbitMQ 一、brew安装 brew update #更新一下homebrew brew install rabbitmq #安装rabbitMQ 安装结果&#xff1a; > Caveats > rabbitmq Management Plugin enabled by defa…...

关于selenium 元素定位的浅度解析

一、By类单一属性定位 元素名称 描述 Webdriver API id id属性 driver.find_element(By.ID, "id属性值") name name属性 driver.find_element(By.NAME, "name属性值") class_name class属性 driver.find_element(By.CLASS_NAME, "class_na…...

狐猬编程:货运

玩具厂生产了一批玩具需要运往美国销售。该批玩具根据大小&#xff0c;已经将其打包装在不同的包装盒里用以运输。该批玩具包装盒共有六个型号&#xff0c;分别1*1*h、2*2*h、3*3*h、4*4*h、5*5*h、6*6*h的包装盒。由于疫情的影响&#xff0c;运输价格十分昂贵&#xff0c;海运…...

SpringBoot复习:(34)@EnableWebMvc注解为什么让@WebMvcAutoconfiguration失效?

它导入了DelegatingWebMvcConfiguration 它会把容器中的类型为WebMvcConfigurer的bean注入到类型为WebMvcConfigurerComposite的成员变量configurers中。 可以看到它继承了WebMvcConfigurerSupport类 而WebMvcConfigureAutoConfiguration类定义如下 可以看到一个Conditional…...

批量将CSV文件转换为TXT文件

要批量将CSV文件转换为TXT文件&#xff0c;可以按照以下步骤进行操作&#xff1a; 1. 导入所需的Python库&#xff1a;首先&#xff0c;您需要导入csv库来读取CSV文件。 import csv 2. 定义文件路径和输出文件夹&#xff1a; input_folder "your_input_folder_path&q…...

如何将中国行政区划数据迁移到MySQL数据库?

如何将中国行政区划数据迁移到MySQL数据库&#xff1f; 【免费下载链接】Administrative-divisions-of-China 中华人民共和国行政区划&#xff1a;省级&#xff08;省份&#xff09;、 地级&#xff08;城市&#xff09;、 县级&#xff08;区县&#xff09;、 乡级&#xff08…...

手把手教你调试UDS Bootloader:从CAN报文抓取到S32K144内存擦写全流程解析

手把手教你调试UDS Bootloader&#xff1a;从CAN报文抓取到S32K144内存擦写全流程解析 在汽车电子开发领域&#xff0c;Bootloader的稳定性和可靠性直接关系到整车ECU的软件更新能力。本文将带您深入UDS Bootloader的调试实战&#xff0c;通过CANoe/TSMaster工具抓取关键UDS服务…...

题解:洛谷 P1156 垃圾陷阱

本文分享的必刷题目是从蓝桥云课、洛谷、AcWing等知名刷题平台精心挑选而来,并结合各平台提供的算法标签和难度等级进行了系统分类。题目涵盖了从基础到进阶的多种算法和数据结构,旨在为不同阶段的编程学习者提供一条清晰、平稳的学习提升路径。 欢迎大家订阅我的专栏:算法…...

NerdMiner_v2社区贡献指南:如何参与开源挖矿项目开发

NerdMiner_v2社区贡献指南&#xff1a;如何参与开源挖矿项目开发 【免费下载链接】NerdMiner_v2 Improved version of first ESP32 NerdMiner 项目地址: https://gitcode.com/gh_mirrors/ne/NerdMiner_v2 NerdMiner_v2是一款基于ESP32的开源微型挖矿项目&#xff0c;旨在…...

快手视频下载终极指南:如何轻松获取无水印高清视频

快手视频下载终极指南&#xff1a;如何轻松获取无水印高清视频 【免费下载链接】KS-Downloader 快手&#xff08;KuaiShou&#xff09;视频/图片下载工具&#xff1b;数据采集工具 项目地址: https://gitcode.com/gh_mirrors/ks/KS-Downloader 还在为无法保存喜欢的快手…...

别再只盯着分类任务了!聊聊知识蒸馏在分割和检测(Dense Prediction)里的那些‘坑’和高级玩法

知识蒸馏在密集预测任务中的进阶实践&#xff1a;从空间对齐到通道感知 密集预测任务&#xff08;如语义分割、目标检测&#xff09;正逐渐成为计算机视觉落地的核心场景&#xff0c;但这类任务对计算资源的消耗往往令人望而却步。当我们在移动设备上使用实时场景分割功能&…...

告别纯CNN时代?从YOLOv12的‘区域注意力’看目标检测架构的融合趋势

YOLOv12如何重新定义实时目标检测的边界 当YOLOv12在T4 GPU上以1.64毫秒的推理速度实现40.6%的mAP时&#xff0c;整个计算机视觉社区都意识到&#xff1a;实时目标检测的游戏规则正在被改写。这不仅仅是另一个增量式改进&#xff0c;而是标志着注意力机制首次在实时检测领域真正…...

10个最佳加密货币 API(2026最新):开发者与量化交易深度指南

&#x1f947; 1. CoinGlass API&#xff08;衍生品 市场结构数据&#xff09;CoinGlass API 提供统一访问全球主流交易所的衍生品、现货、期权、ETF及链上数据&#xff0c;包括 持仓(Open Interest)、资金费率&#xff08;Funding Rate&#xff09; &#xff0c;爆仓&#xf…...

5步精通:免费AI图像视频超分辨率放大工具完全指南

5步精通&#xff1a;免费AI图像视频超分辨率放大工具完全指南 【免费下载链接】Waifu2x-Extension-GUI Video, Image and GIF upscale/enlarge(Super-Resolution) and Video frame interpolation. Achieved with Waifu2x, Real-ESRGAN, Real-CUGAN, RTX Video Super Resolution…...

给爸妈买手机电脑,别再被屏幕参数忽悠了!5分钟搞懂LCD、OLED到底怎么选

给爸妈买手机电脑&#xff0c;别再被屏幕参数忽悠了&#xff01;5分钟搞懂LCD、OLED到底怎么选 每次陪父母去商场买电子产品&#xff0c;总能看到他们对着五花八门的屏幕参数一脸茫然。销售员滔滔不绝地讲着"OLED色彩更鲜艳"、"IPS广视角更清晰"&#xff0…...