广搜破解密码(HDU1195)
题目链接: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)的更多相关文章
- HDU-1226-超级密码-队列+广搜+大数取模
Ignatius花了一个星期的时间终于找到了传说中的宝藏,宝藏被放在一个房间里,房间的门用密码锁起来了,在门旁边的墙上有一些关于密码的提示信息: 密码是一个C进制的数,并且只能由给定的M个数字构成,同 ...
- hdu 1195 Open the Lock(广搜,简单)
题目 猜密码,问最少操作多少次猜对,思路很简单的广搜,各种可能一个个列出来就可以了,可惜我写的很搓. 不过还是很开心,今天第一个一次过了的代码 #define _CRT_SECURE_NO_WARNI ...
- 为什么现在更多需要用的是 GPU 而不是 CPU,比如挖矿甚至破解密码?
作者:Cascade链接:https://www.zhihu.com/question/21231074/answer/20701124来源:知乎著作权归作者所有,转载请联系作者获得授权. 想要理解G ...
- HDU--杭电--1195--Open the Lock--深搜--都用双向广搜,弱爆了,看题了没?语文没过关吧?暴力深搜难道我会害羞?
这个题我看了,都是推荐的神马双向广搜,难道这个深搜你们都木有发现?还是特意留个机会给我装逼? Open the Lock Time Limit: 2000/1000 MS (Java/Others) ...
- HDU 5652(二分+广搜)
题目链接:http://acm.hust.edu.cn/vjudge/contest/128683#problem/E 题目大意:给定一只含有0和1的地图,0代表可以走的格子,1代表不能走的格 子.之 ...
- nyoj 613 免费馅饼 广搜
免费馅饼 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 都说天上不会掉馅饼,但有一天gameboy正走在回家的小径上,忽然天上掉下大把大把的馅饼.说来gameboy ...
- poj 3984:迷宫问题(广搜,入门题)
迷宫问题 Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 7635 Accepted: 4474 Description ...
- poj 3278:Catch That Cow(简单一维广搜)
Catch That Cow Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 45648 Accepted: 14310 ...
- 双向广搜 POJ 3126 Prime Path
POJ 3126 Prime Path Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 16204 Accepted ...
随机推荐
- shell read line
cat >b <<EOF line1 line2 line3 EOF # 方法1 while read line do echo ${line} done < <(cat ...
- Storm(1)-centos7下安装单机版Strom
1.所需软件: jdk8.zookeeper.storm 2.安装zookeeper单机版 下载:http://zookeeper.apache.org/releases.html#download ...
- .net core项目中引用.net framework封装的dll库
https://blog.csdn.net/sharphou/article/details/80746551 A----------如何安装IIS [Server Hosting]------- ...
- mc02_配置本地git仓库并上传到github
注册github账号 仔细阅读使用说明便可,这里提一下如何删除一个repository. 点击要删除的repository,打开后点击Settings 然后滚动到页面最下方,点击最后一个按钮 在弹出框 ...
- firewall 端口转发
centos 7 使用背景:某次新购阿里云服务器安装nginx后配置80转8080的内部转发 systemctl status firewalld ---查看守护进程状态systemctl start ...
- Android 5.0以上heads up通知
适用Android系统: 1) Android版本>= 5.0 2) 部分ROM是不支持 RemoteViews view=getRemoteViews(body,title, R.mipmap ...
- mysql 死锁解决办法
查询表的时候,发现一圈圈转啊转,就是不出来数据,猜测表被锁住 解决办法 : mysql> show processlist ; mysql> kill 4; 说明 : 4为 i ...
- Big Data Opportunities and Challenges(by周志华)论文要点
大数据环境下的机器学习 三种误解:模型不再重要(大量数据上复杂模型依然提升显著,大数据是的复杂模型充分利用数据且难以过拟合),相关性就足够了(因果关系重要性无法被替代),以前的研究方向不再重要(高性能 ...
- python 之serial
一 先按照 pywin32:pywin32是一个非常强大的Python扩展库,是Python调用Windows系统底层功能的最佳接口,不安装这个按照pyserial也没有用 二 按装pyserial ...
- go语言初始化内部结构体3中方式
package main import ( "fmt" ) type User struct { Id int Name string Age int } type Manger ...