hdu5012 水搜索
题意:
给你一个正方体的初始状态和末状态,问你是否可以再6步之内转到这个状态,有四种转的方式,如果你面对的是正方向的正前方,那么转的方式就是 顺时针,逆时针,上,下。
思路:
水搜索,直接搜就行,深搜广搜随意,mark不mark也随意,因为状态4,深度6那么最多也就4^6,题目没有坑点,细心点就行了,我写的是一个广搜(mark了)。
#include<stdio.h>
#include<queue>
using namespace std; typedef struct
{
int now[7];
}NODE; NODE xin ,tou;
int mark[7][7][7][7][7][7];
int ss[7] ,ee[7]; int BFS()
{
memset(mark ,0 ,sizeof(mark));
mark[ss[1]][ss[2]][ss[3]][ss[4]][ss[5]][ss[6]] = 1;
queue<NODE>q;
for(int i = 0 ;i <= 6 ;i ++) xin.now[i] = ss[i];
q.push(xin);
while(!q.empty())
{
tou = q.front();
q.pop();
int ok = 1;
for(int i = 1 ;i <= 6 ;i ++)
if(tou.now[i] != ee[i]) ok = 0;
if(ok) return tou.now[0];
if(tou.now[0] >= 6) continue; for(int i = 0 ;i <= 6 ;i ++) xin.now[i] = tou.now[i];
xin.now[0] ++;
xin.now[1] = tou.now[3] ,xin.now[3] = tou.now[2] ,xin.now[2] = tou.now[4] ,xin.now[4] = tou.now[1];
if(!mark[xin.now[1]][xin.now[2]][xin.now[3]][xin.now[4]][xin.now[5]][xin.now[6]] ) q.push(xin); for(int i = 0 ;i <= 6 ;i ++) xin.now[i] = tou.now[i];
xin.now[0] ++;
xin.now[1] = tou.now[4] ,xin.now[4] = tou.now[2] ,xin.now[2] = tou.now[3] ,xin.now[3] = tou.now[1];
if(!mark[xin.now[1]][xin.now[2]][xin.now[3]][xin.now[4]][xin.now[5]][xin.now[6]] ) q.push(xin); for(int i = 0 ;i <= 6 ;i ++) xin.now[i] = tou.now[i];
xin.now[0] ++;
xin.now[1] = tou.now[5] ,xin.now[5] = tou.now[2] ,xin.now[2] = tou.now[6] ,xin.now[6] = tou.now[1];
if(!mark[xin.now[1]][xin.now[2]][xin.now[3]][xin.now[4]][xin.now[5]][xin.now[6]] ) q.push(xin); for(int i = 0 ;i <= 6 ;i ++) xin.now[i] = tou.now[i];
xin.now[0] ++;
xin.now[1] = tou.now[6] ,xin.now[6] = tou.now[2] ,xin.now[2] = tou.now[5] ,xin.now[5] = tou.now[1];
if(!mark[xin.now[1]][xin.now[2]][xin.now[3]][xin.now[4]][xin.now[5]][xin.now[6]] ) q.push(xin); }
return -1;
} int main ()
{
while(~scanf("%d %d %d %d %d %d" ,&ss[1] ,&ss[2] ,&ss[3] ,&ss[4] ,&ss[5] ,&ss[6]))
{
for(int i = 1 ;i <= 6 ;i ++)
scanf("%d" ,&ee[i]);
ss[0] = ee[0] = 0;
printf("%d\n" ,BFS());
}
return 0;
}
hdu5012 水搜索的更多相关文章
- P5198 [USACO19JAN]Icy Perimeter S (洛谷) (水搜索)
同样是因为洛谷作业不会写…… 写(水)博客啦. 直接放题目吧,感觉放在代码框里好看点 Farmer John要开始他的冰激凌生意了!他制造了一台可以生产冰激凌球的机器,然而不幸的是形状不太规则,所以他 ...
- hdu1572 水搜索
题意: 中文的不解释; 思路: 其实就是一个水的搜索,直接搜索不会超时,还有别跑最短路了,题目没要求跑最短路,别读错题,刚开始自己嘚嗖的跑了一边最短路 wa了 ,正好最近看了STL ...
- hdu4771 水搜索(状态压缩+bfs)
题意: 给你一个n*m的地图,问你从起点出发,吧所有的宝藏都捡完用的最少时间. 思路:k <= 4,水题,直接开一个数组mark[now][x][y];now代表的是当前检宝藏的二进制 ...
- hdu 5094 Maze(水搜索)
题目意思:说有一个人在(1,1) 他的目标点在(n,m) 每次是4方向的移动: 限制条件:有的各自之间有墙 或者门,强不可通过,有对应的要钥匙可以开启这个类型的所有门: 问题:求最少步骤数(和): 类 ...
- Divide by Zero 2017 and Codeforces Round #399 (Div. 1 + Div. 2, combined) A B 水 搜索
A. Oath of the Night's Watch time limit per test 2 seconds memory limit per test 256 megabytes input ...
- hdu2102 水搜索
题意: A计划 Problem Description 可怜的公主在一次次被魔王掳走一次次被骑士们救回来之后,而今,不幸的她再一次 ...
- hdu 2181 水搜索
哈密顿绕行世界问题 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total S ...
- hdu4536 水搜索
题意: XCOM Enemy Unknown Time Limit: 500/200 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others ...
- Luogu P1141 01迷宫【搜索/dfs】By cellur925
题目传送门 我tm到现在还需要刷这种水搜索...我退役吧. 但就是搜索弱嘛 补一补嘛qwq 题目大意:给你一张地图与许多询问,每次询问求这个点所在联通块的点的个数. 所以这个题目的本质就是在求联通块. ...
随机推荐
- 链表算法题之中等级别,debug调试更简单
文章简述 大家好,本篇是个人的第 5 篇文章 从本篇文章开始,分享关于链表的题目为中等难度,本次共有 3 道题目. 一,两数相加 1.1 题目分析 题中写到数字是按照逆序的方式存储,从进位的角度看,两 ...
- 数据采集组件:Flume基础用法和Kafka集成
本文源码:GitHub || GitEE 一.Flume简介 1.基础描述 Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集.聚合和传输的系统,Flume支持在日志系统中 ...
- 你真的搞懂了Java中的<<、>>、>>>运算符嘛?
在搞懂<<.>>.>>>之前,我们需要先了解二进制中的源码.反码.补码... 二进制中的原码.反码.补码 有符号数: 对于有符号数而言,符号的正.负机器是无法 ...
- 【codeforces - 1307G】Cow and Exercise
目录 description solution accepted code details description 给定 n 点 m 边简单有向图,有边权. q 次询问,每次给出 xi.可以增加某些边 ...
- P3369 【模板】普通平衡树 题解(Splay/FHQ)
题目链接 P3369 [模板]普通平衡树 解题思路1:Splay 注意查询的时候大于小于等于号千万不要搞错了:注意适时伸展 AC代码1 #include<stdio.h> #define ...
- 【Django必备01】——什么是Django框架?有什么优势?模块组成介绍。
01.什么是Django框架? Django是一个开放源代码的Web应用框架,由Python写成.采用了MTV的框架模式.使用这种架构,程序员可以方便.快捷地创建高品质.易维护.数据库驱动的应用程序. ...
- JMeter扩展Java请求实现WebRTC本地音视频推流压测脚本
WebRTC是Web Real-Time Communication缩写,指网页即时通讯,是一个支持Web浏览器进行实时语音或视频对话的API,实现了基于网页的视频会议,比如声网的Agora Web ...
- DNS 缓存中毒--Kaminsky 攻击复现
0x00 搭建实验环境 使用3台Ubuntu 16.04虚拟机,可到下面的参考链接下载 攻击的服务是BIND9,由于条件限制,这里使用本地的一台虚拟机当作远程DNS解析器,关闭了DNSSEC服务,其中 ...
- Android Studio 分类整理 res/layout 中的布局文件
•准备工作 新建一个名为 TestLayouts 的项目: 进入 Project 模式: 来到 TestLayouts/app/src/main/res/layout 文件夹下: •分类整理 layo ...
- SQL注入靶场实战-小白入门
目录 SQL注入 数字型 1.测试有无测试点 2.order by 语句判断字段长,查出字段为3 3.猜出字段位(必须与内部字段数一致)(用union联合查询查看回显点为2,3) 4.猜数据库名,用户 ...