BZOJ1054(搜索)
大力搜,状态用一个16位的数字表示。
1 #include <bits/stdc++.h> 2 3 using namespace std; 4 5 #define rep(i,a,b) for(int i(a); i <= (b); ++i) 6 7 const int A = 30 + 1; 8 9 struct node{int x, y; } op[A]; 10 struct Node{int num, step;} now, np; 11 12 char st[A][A]; 13 int f[A][A]; 14 int h[1 << 18]; 15 int x, y, nx, ny, s, t, cnt = 0; 16 17 queue <Node> Q; 18 19 int main(){ 20 21 rep(i, 1, 8) scanf("%s", st[i] + 1); 22 cnt = 0; 23 rep(i, 1, 4) rep(j, 1, 4) f[i][j] = cnt++; 24 rep(i, 5, 8) rep(j, 1, 4) f[i][j] = f[i - 4][j]; 25 26 s = 0, t = 0; 27 28 rep(i, 1, 4) rep(j, 1, 4) if (st[i][j] == '1') s |= (1 << f[i][j]); 29 rep(i, 5, 8) rep(j, 1, 4) if (st[i][j] == '1') t |= (1 << f[i][j]); 30 31 cnt = 0; 32 33 rep(i, 1, 3) rep(j, 1, 4){ op[++cnt].x = f[i][j], op[cnt].y = f[i + 1][j];} 34 rep(i, 1, 4) rep(j, 1, 3){ op[++cnt].x = f[i][j], op[cnt].y = f[i][j + 1];} 35 36 memset(h, 0, sizeof h); h[s] = 1; Q.push({s, 0}); 37 38 while (!Q.empty()){ 39 np = Q.front(); Q.pop(); 40 if (np.num == t){ 41 printf("%d\n", np.step); 42 break; 43 } 44 rep(i, 1, cnt){ 45 now = np; 46 x = op[i].x, y = op[i].y; 47 nx = (now.num >> x) & 1, ny = (now.num >> y) & 1; 48 if (nx ^ ny){ 49 now.num ^= (1 << x); 50 now.num ^= (1 << y); 51 } 52 53 if (!h[now.num]){ 54 h[now.num] = 1; 55 Q.push({now.num, now.step + 1}); 56 } 57 } 58 } 59 60 return 0; 61 62 }
转载于:https://www.cnblogs.com/cxhscst2/p/6351832.html
BZOJ1054(搜索)相关推荐
- VS Code 配置调试参数、launch.json 配置文件属性、task.json 变量替换、自动保存并格式化、空格和制表符、函数调用关系、文件搜索和全局搜索、
1. 生成配置参数 对于大多数的调试都需要在当前项目目录下创建一个 lanch.json 文件,位置是在当前项目目录下生成一个 .vscode 的隐藏文件夹,在里面放置一些配置内容,比如:settin ...
- 浅显易懂 Makefile 入门 (03)— 目标文件搜索(VPATH 和 vpath 的区别和使用)、隐含规则
1. 目标文件搜索(VPATH和vpath) 如果需要的文件是存在于不同的路径下(即源文件与 Makefile 文件不在同一个路径下),在编译的时候就用到了 Makefile 中为我们提供的目录搜索文 ...
- Windows10自带搜索增强设置
操作系统:Windows10 前言:Windows自带的搜索速度非常慢,因此有人借助Everything等索引软件进行搜索,能够显著提升搜索速度.但是Windows自带的搜索在进行一些设置以后也能达到 ...
- listary 指定目录搜索_everything
20211009 https://zhuanlan.zhihu.com/p/225414423 listary详细使用 20210710 everything搜索文件,结果出现相同的2个重复情况,路径 ...
- LeetCode简单题之二叉搜索树中的搜索
题目 给定二叉搜索树(BST)的根节点 root 和一个整数值 val. 你需要在 BST 中找到节点值等于 val 的节点. 返回以该节点为根的子树. 如果节点不存在,则返回 null . 示例 1 ...
- Hexo集成Algolia实现搜索功能
2年前搭建的hexo博客好久没有维护了,一看 hexo 以及先前使用 butterfly 主题已经更新好几个版本了,看介绍在速度性能上有了很大的提高,于是打算给 hexo 升个级,整理整理翻翻新.通过 ...
- 目标识别的选择性搜索
目标识别的选择性搜索 Selective Search for Object Recognition 论文地址: https://ivi.fnwi.uva.nl/isis/publications/b ...
- 2021年大数据ELK(四):Lucene的美文搜索案例
全网最详细的大数据ELK文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 美文搜索案例 一.需求 二.准备工作 1.创建IDEA项目 2. ...
- [C] 深度优先搜索解决连通块/染色问题——求岛的个数
本文介绍用DFS解决连通块个数问题 有关dfs的介绍见另外一篇:不撞南墙不回头--深度优先搜索 例题 宝岛探险 题目描述 一个小岛由一个主岛和一些复附属岛屿组成,该岛使用一个二维矩阵表示,其中数字表示 ...
最新文章
- php扩展xdebug基本使用
- LeetCode 421. Maximum XOR of Two Numbers in an Array--Python解法
- [Linux]Linux下网络配置文件总结(转)
- python保存快捷键_超详细的Sublime Text配置python教程
- python opengl加速_OpenGL with python 渲染加速
- 2015年百度之星初赛(1) --- A 超级赛亚ACMer
- rxjs fromEvent的用法
- [转]DPM2012系列之十八:如何保护工作组计算机
- MySQL之流程控制结构(分支,循环)
- 推荐系统系列教程之十一:那些在Netflix Prize中大放异彩的推荐算法
- 使用SQL Server数据工具进行SQL单元测试
- python 菜鸟-Python IDE
- android转iOS看什么书,一起聊聊:是什么让你从Android转向iOS?
- 浏览器默认事件,事件监听,事件委托
- 理解 __doPostBack--2
- android nano app,实战nanoHTTPD嵌入android app(3)
- 第四章、Zigbee模块的设置及组网
- 2020家用千兆路由器哪款好_2020年500元以内23款无线路由器推荐,贵就好吗?
- 《ArcGIS10.2》 Part1 在地图上标注地名或坐标
- 基于JavaSSM和微信小程序的智能二维码门禁管理系统
热门文章
- matlab如何将相近的数据,matlab新手,求帮助!主要是如何将数据和公式导入
- c++builder提高批量动态创建panel的速度_骑行时影响速度的事项有哪些 怎样有效提高骑行速度 单车租赁信息...
- NXP S32K144开发(一)环境搭建和新建工程
- Please use boost/bind/bind.hpp + using namespace boost::placeholders
- 数据结构--数组实现线性表
- 修改无效_修改劳动合同日期被认定无效,青岛一企业被判赔双倍工资
- leetcode 35. 搜索插入位置 思考分析
- 软件故障_一些主要的软件故障
- math.sqrt 有问题_JavaScript中带有示例的Math.SQRT2属性
- Java PushbackInputStream markSupported()方法与示例