题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1195

解题报告:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<queue> using namespace std; struct node
{
int num[],step;
}; node start,_end;
bool visit[][][][],flag; void bfs()
{
int i;
node p,q;
queue<node> Q;
memset(visit,false,sizeof(visit));
flag=true;
start.step=;
p=start;
visit[p.num[]][p.num[]][p.num[]][p.num[]]=true;
Q.push(p);
while(!Q.empty())
{
p=Q.front();
Q.pop(); flag=true;
for(i=; i<; i++)
if(p.num[i]!=_end.num[i])
{
flag=false;
break;
}; if(flag)
{
printf("%d\n",p.step);
return;
} for(i=; i<; i++) ///+1
{
q=p;
if(p.num[i]==) q.num[i]=;
else q.num[i]=p.num[i]+;
q.step=p.step+;
if(!visit[q.num[]][q.num[]][q.num[]][q.num[]])
{
visit[q.num[]][q.num[]][q.num[]][q.num[]]=true;
Q.push(q);
}
}
for(i=; i<; i++) ///-1
{
q=p;
if(p.num[i]==) q.num[i]=;
else q.num[i]=p.num[i]-;
q.step=p.step+;
if(!visit[q.num[]][q.num[]][q.num[]][q.num[]])
{
visit[q.num[]][q.num[]][q.num[]][q.num[]]=true;
Q.push(q);
}
}
for(i=; i<; i++) ///相邻交换
{
q=p;
q.num[i]=p.num[i+];
q.num[i+]=p.num[i];
q.step=p.step+;
if(!visit[q.num[]][q.num[]][q.num[]][q.num[]])
{
visit[q.num[]][q.num[]][q.num[]][q.num[]]=true;
Q.push(q);
}
}
}
} int main()
{
int cas,i;
char chf[],chl[];
scanf("%d",&cas);
while(cas--)
{
scanf("%s%s",chf,chl);
for(i=; i<; i++)
{
start.num[i]=chf[i]-'';
_end.num[i]=chl[i]-'';
}
bfs();
}
return ;
}

广搜破解密码(HDU1195)的更多相关文章

  1. HDU-1226-超级密码-队列+广搜+大数取模

    Ignatius花了一个星期的时间终于找到了传说中的宝藏,宝藏被放在一个房间里,房间的门用密码锁起来了,在门旁边的墙上有一些关于密码的提示信息: 密码是一个C进制的数,并且只能由给定的M个数字构成,同 ...

  2. hdu 1195 Open the Lock(广搜,简单)

    题目 猜密码,问最少操作多少次猜对,思路很简单的广搜,各种可能一个个列出来就可以了,可惜我写的很搓. 不过还是很开心,今天第一个一次过了的代码 #define _CRT_SECURE_NO_WARNI ...

  3. 为什么现在更多需要用的是 GPU 而不是 CPU,比如挖矿甚至破解密码?

    作者:Cascade链接:https://www.zhihu.com/question/21231074/answer/20701124来源:知乎著作权归作者所有,转载请联系作者获得授权. 想要理解G ...

  4. HDU--杭电--1195--Open the Lock--深搜--都用双向广搜,弱爆了,看题了没?语文没过关吧?暴力深搜难道我会害羞?

    这个题我看了,都是推荐的神马双向广搜,难道这个深搜你们都木有发现?还是特意留个机会给我装逼? Open the Lock Time Limit: 2000/1000 MS (Java/Others)  ...

  5. HDU 5652(二分+广搜)

    题目链接:http://acm.hust.edu.cn/vjudge/contest/128683#problem/E 题目大意:给定一只含有0和1的地图,0代表可以走的格子,1代表不能走的格 子.之 ...

  6. nyoj 613 免费馅饼 广搜

    免费馅饼 时间限制:1000 ms  |  内存限制:65535 KB 难度:3   描述 都说天上不会掉馅饼,但有一天gameboy正走在回家的小径上,忽然天上掉下大把大把的馅饼.说来gameboy ...

  7. poj 3984:迷宫问题(广搜,入门题)

    迷宫问题 Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 7635   Accepted: 4474 Description ...

  8. poj 3278:Catch That Cow(简单一维广搜)

    Catch That Cow Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 45648   Accepted: 14310 ...

  9. 双向广搜 POJ 3126 Prime Path

      POJ 3126  Prime Path Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 16204   Accepted ...

随机推荐

  1. Eclipse + Git + 码云

    1. 进入码云个人首页 点击自己的名称即可 2. 添加一个项目 3. 在Eclipse中创建一个本地Git Eclipse不建议git目录创建在项目的目录下,因此另选一个目录作为本地Git目录 选择一 ...

  2. tail -f 实时跟踪一个日志文件的输出内容

    tail -f  实时跟踪一个日志文件的输出内容 http://hittyt.iteye.com/blog/1927026 https://blog.csdn.net/mengxianhua/arti ...

  3. wait、notify和notifyAll

    生产者消费者模型是我们学习多线程知识的一个经典案例,一个典型的生产者消费者模型如下: public void produce() { synchronized (this) { while (mBuf ...

  4. Spring注入的反射解释

    对于如下配置片段:  <bean id="id" class="lee.Aclass">  <!--property配置需要依赖注入的属性-- ...

  5. python_案例综合:教材记录管理

    class Book(): def __init__(self,ISBN,Ftile,Author,Publisher): self.ISBN = ISBN self.Ftile = Ftile se ...

  6. Indexing the World Wide Web: the Journey So Far阅读笔记

    文献文档用google搜索标题即可. term预处理:用空格切分,去除标点,去除撇号,归一化小写,去除变音符号,词干还原(?),去除停用词,挖掘词组. 索引选型工程最佳实践:term粒度.按doc分块 ...

  7. (转) tcpdump参数解析及使用详解

    tcpdump介绍 原文:http://blog.csdn.net/hzhsan/article/details/43445787 tcpdump 是一个运行在命令行下的抓包工具.它允许用户拦截和显示 ...

  8. .NET控制台程序监听程序退出

    There are mainly 2 types of Win32 applications, console application and window application. They hav ...

  9. Unity3D跨平台动态库编译---记kcp基于CMake的各平台构建实践

    一 为什么需要动态库 1)提供原生代码(native code)的支持,也叫原生插件,但是我实践的是c/cpp跨平台动态库,这里不具体涉及安卓平台java库和ios平台的objectc库构建. 2)某 ...

  10. React.js 小书 Lesson5 - React.js 基本环境安装

    作者:胡子大哈 原文链接:http://huziketang.com/books/react/lesson5 转载请注明出处,保留原文链接和作者信息. 安装 React.js React.js 单独使 ...