E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
hdu1043
Hdu1043
老实说第一眼看到这个题,脑子里第一时间就想到了BFS,但是最后AC真的十分艰辛,中间遇到了很多奇葩的问题。下面一一道来我在此题的收获题目传送门#include#include#include#include#include#includeusingnamespacestd;chara[10];charb[20];intdx[]={-1,1,0,0};intdy[]={0,0,-1,1};mapMa
I am jack
·
2021-01-27 23:11
杂谈
[搜索]
hdu1043
Eight(8思路)
思路来源:八数码的八境界境界一:广搜+map最简单的思路,从输入的字符串开始暴力广搜,用map记录到达每种状态的步骤以及是否搜索过,然后爆了内存.#includeusingnamespacestd;charc[10];strings,wt="123456789";mapmp;intdx[]={0,0,-1,1};intdy[]={1,-1,0,0};voidbfs(){queue>q;intk;f
永远热血沸腾
·
2020-09-11 18:20
hdu
八数码问题:bfs及dbfs版本详解
hdu1043
多组数据poj1077单组数据1、对于空间的处理按常规方法,标志位序列vis的大小需要876543210位,空间非常大,所以我们考虑将int转化为char类型储存(32位机int占4字节char
躲不过这哀伤
·
2020-08-24 23:23
HDU 1043 八数码问题【双向BFS】
HDU1043
八数码问题【双向BFS】题目链接题意:给你一个初始状态,问你能否移动到最终的完成状态,如果能输出任意一组解,否则输出unsolved。
hrbust_wgq
·
2020-08-22 02:11
双向BFS
hdu1043
双向bfs+康拓展开【经典】
题意大致就是给你一个3X3的矩阵,你要把矩阵转换成12345678的形式,在矩阵中是有一个空缺处可以供你移动滑块的,问你是否可以把给你的矩阵转换成12345678的形式,算了题意自己去看吧,有图更加直接思路:这里主要考虑这几个方面:第一个如何判断经过一定转换的矩阵是规范矩阵?这里就用到了康拓展开,通过康拓展开来把当前的矩阵转换为一个数值,(哈希的思想)然后去参考是否和规范矩阵的康拓展卡的哈希值一样
D.Fu
·
2020-08-22 02:30
搜索
hdu1043
八数码 bfs 打表/双向bfs/A*+康托判重+逆序奇偶剪枝
写之前拜读了这篇文章:八数码的八境界个人觉得写顺序为一(可写可不写,介意找工作的的人最好试试这种写法)-->三-->二-->四->六-->八境界一、逆向广搜+STL多组输入输出,可以想到打表,bfs时间复杂度为9!,查询复杂度为O(1)判重方法:setvis;set红黑树实现,查找效率log(n);总的效率nlog(n)(10^6),肯定会TLE#include#include#include#i
pmt123456
·
2020-08-22 02:33
bfs
POJ1077、
HDU1043
Eight 八数码问题:双向BFS、A*
ProblemAddress:http://poj.org/problem?id=1077ProblemAddress:http://acm.hdu.edu.cn/showproblem.php?pid=1043【前言】第一次写八数码问题。这份代码写得也是够残的。还好效率不是很低。HDU的数据明显比POJ的强。而且HDU里有初末状态相同的情况,而POJ没有。这也是后来改成双向A*之后在HDU上狂W
Human_CK
·
2020-08-22 00:21
搜索
八数码问题多种解法比较(poj1077宽搜,双向宽搜,A*,IDA*+扩展)(持续更新)
(4608KB,688ms)(
hdu1043
上是同时多组输入,POJ是单组输入。两个限时不同。HDU上反向搜索,把所有情况打表出来。POJ上正向搜索。)
帐下幕僚
·
2020-08-20 22:01
acm之路
dfs/bfs
八码数-IDA*算法
具体原理我怕讲不清楚,推荐阅读: 算法思想:迭代加深A∗*∗算法和IDA∗*∗算法 看题吧:
HDU1043
—Eight给出一个3×33×33×3的八码数0-
jjl0229
·
2020-08-15 12:04
搜索
【双向广搜+逆序数优化】【
HDU1043
】【八数码】
HDU上的八数码数据强的一B首先:双向广搜先处理正向搜索,再处理反向搜索,直至中途相遇visit和队列都是独立的。可以用一个过程来完成这2个操作,减少代码量。(一般还要个深度数组)优化效率很强逆序数优化在忽略空格的情况,会发现空格无论怎么变,1-8的排列的逆序数始终要为偶数,才能有解(空格无视)而且证明得出:如果满足逆序条件,必定有解!拓展N*N的情况N×N的棋盘,N为奇数时,与八数码问题相同。N
weixin_34148508
·
2020-08-14 08:17
HDU1043
Eight
题目:简单介绍一下八数码问题:在一个3×3的九宫格上,填有1~8八个数字,空余一个位置,例如下图:12345678在上图中,由于右下角位置是空的,你可以移动数字,比如可以将数字6下移一位:123123456→4578786或者将数字8右移一位:123123456→45678781~8按顺序排列的情况称为“初始状态”(如最上方图)。“八数码问题”即是求解对于任意的布局,将其移动至“初始状态”的方法。
weixin_30532759
·
2020-08-01 03:00
HDU1043
——八数码IDA*算法
之前写八数码用了广搜,从目标状态扩展路径,把所有可以走到的状态都标记起来,然后输入后直接判断这个状态是否被标记过,但是在poj上正确,在HDU上一直超时,poj时间是5000ms,HDU是1000ms,妥妥的超了,wrong使我进步,又恶补了IDA*的知识。先介绍一下我理解的IDA*,首先判断当前数码位置状态与目标数码位置状态是否可互达(后附简单介绍),如果不可以直接剪枝,如果可以,就算出当前状态
法国就是培根
·
2020-08-01 02:46
hdu1043
经典的八数码问题 逆向bfs打表 + 逆序数
题意:题意就是八数码,给了一个3*3的矩阵,上面有八个数字,有一个位置是空的,每次空的位置可以和他相邻的数字换位置,给你一些起始状态,给了一个最终状态,让你输出怎么变换才能达到目的.思路:首先我们先判断一下可不可以达到最终目的,方法是根据逆序数,只要终止状态和起始状态的逆序数(空的位置不算)奇偶性相同就能,否则不能;证明:加入当前空的位置是i,针对3*3的也就是八数码问题(可能有别的数码,根据奇偶
TK13
·
2020-08-01 02:38
hdu1043
八数码问题
EightTimeLimit:10000/5000MS(Java/Others)MemoryLimit:65536/32768K(Java/Others)TotalSubmission(s):17589AcceptedSubmission(s):4795SpecialJudgeProblemDescriptionThe15-puzzlehasbeenaroundforover100years;ev
fruit_dish
·
2020-08-01 02:20
oj题解
八数码难题
hdu1043
/ poj1077
poj1077代码如下:A*+hash+堆+曼哈顿距离做一组数据的poj1077,可是,但是对于
hdu1043
多组数据,没有剪枝,故超时,下面再给剪枝改进的算法。
thegoodniao
·
2020-08-01 01:32
HDU1043
Eight(八数码,BFS,康托展开,hash)
ProblemDescriptionThe15-puzzlehasbeenaroundforover100years;evenifyoudon’tknowitbythatname,you’veseenit.Itisconstructedwith15slidingtiles,eachwithanumberfrom1to15onit,andallpackedintoa4by4framewithonet
riba2534
·
2020-07-31 23:57
【搜索(DFS/BFS)】
hdu1043
Eight(A*/双向BFS/单项BFS打表+康托展开)
题目链接:点击打开链接题意描述:经典八数码问题,给定八数码的初始序列,求经过u、r、l、d四种操作到达12345678x的状态,打印出操作序列?解题思路:A*/双向BFS/单项BFS打表+康托展开202msAC方法一:BFS逆向打表+康托展开:从12345678x逆向扩展,记录哪些状态可以到达,以及到达给状态操作代码:#include#include#include#include#definem
Think_Idea
·
2020-07-31 20:28
搜索
HDU 1043——八数码的多种解题思路(持续更新)
hdu1043
:http://acm.hdu.edu.cn/showproblem.php?pid=1043poj1077:http://poj.org/problem?
fengyuzhicheng
·
2020-07-31 17:48
POJ 1077 Eight (正向BFS + 康托展开)
题意不说了八数码问题:和上篇博客
HDU1043
题目是一样的!但是做法上有些出入。HDU时间限制比较长,而且是多组输入,所以要逆向bfs进行打表处理。而POJ1077这个题目,时间是1S,单组输入。
aozil_yang
·
2020-07-31 15:07
POJ
BFS
DFS
康托定理
搜索
Eight
传送门
HDU1043
描述The15-puzzlehasbeenaroundforover100years;evenifyoudon’tknowitbythatname,you’veseenit.Itisconstructedwith15slidingtiles
「已注销」
·
2020-07-31 15:20
HDU1043
Eight(逆向BFS/A*/双向bfs/IDA*)
八数码cantor展开:一个全排列的rank,用来hash逆向bfs:62msAC#includeusingnamespacestd;typedeflonglongLL;#defineINF0x3f3f3f3fconstLLmod=1e9+7;constdoubleeps=1e-9;stringInput;charstr[10];intdx[4]={1,-1,0,0};intdy[4]={0,0,
IDrandom
·
2020-07-31 14:37
搜索
hdu
HDU1043
解题报告
HDU1043
:Eight(八数码,经典题型)HDU1043Eight八数码经典题型题意思路方案一BFSHash打表康托展开方案二双向BFSHash方案三AHash曼哈顿距离优先队列小结附录原题地址:http
Yaser0
·
2020-07-31 14:36
ACM解题报告
hdu1043
Eight(搜索/八数码问题)
题目给你一个1-8的字符串和一个位置x,如13264578x代表13264578x要求将状态通过重复x与相邻位置交换过程,将局面复位为12345678x要求在最少步数的情况下,输出路径x向上走则为u,向下d,向左l,向右r思路来源https://www.cnblogs.com/goodness/archive/2010/05/04/1727141.htmlhttp://www.bubuko.com
Code92007
·
2020-07-31 13:16
搜索(bfs/dfs)/回溯
搜索
八数码问题
康托展开
hdu1043
Eight 康拓展开+bfs打表
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1043经典的八数码,一般做法直接bfs,肯定tle。应该用A*剪枝或者打表,我用的是打表,打表更快点。我的思路是以最终状态为起点进行bfs,同时开个结构体数组来记忆bfs过程中的状态(方向,这个八数码状态的上个状态的结构体数组下标),最终可以回溯打印路径。同时给定一种状态要能找到他对应的结构体数组的下标
黑色的夢
·
2020-07-31 13:15
hdu日常小练
搜索
hdu1043
Eight (八数码问题,多种解法)
hdu1043
:http://acm.hdu.edu.cn/showproblem.php?
yew1eb
·
2020-07-31 13:31
ACM-搜索策略
hdu1043
8数码,无解情况为逆序数为奇数,用康托展开压缩成一个int来判重这个是多组输入所以我们不能来一组搜一次这里给出bfs和A*A*的话,你可以使用曼哈顿距离,当然,由于不用最少步数,可以用3倍曼哈顿距离加速IDA*的话用曼哈顿距离就好了bfs我们从终点反向搜索所有的点,然后来一组搜一组#include#include#include#includeusingnamespacestd;constchar
Nightmare004
·
2020-07-31 12:59
HDU1043
:Eigth(康托展开)
ProblemDescriptionThe15-puzzlehasbeenaroundforover100years;evenifyoudon'tknowitbythatname,you'veseenit.Itisconstructedwith15slidingtiles,eachwithanumberfrom1to15onit,andallpackedintoa4by4framewithonet
键盘上的舞者
·
2020-07-31 12:38
搜索
HDU1043
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1043解题思路:反向BFS+康托展开从目标状态“12345678x"反过来做BFS,记录其可能访问到的状态,用康托展开为每一个状态”编码“(我不知道怎么说比较合适,其实就是找一个数来代表这个状态),用fa来记录每个状态的上一个状态,方便读取转移路径。思路不难,实现难!AC代码:1#include2#in
dielie6462
·
2020-07-31 11:44
HDU1043
Eight(八数码:逆向BFS打表+康托展开)题解
EightTimeLimit:10000/5000MS(Java/Others)MemoryLimit:65536/32768K(Java/Others)TotalSubmission(s):28040AcceptedSubmission(s):7457SpecialJudgeProblemDescriptionThe15-puzzlehasbeenaroundforover100years;ev
KirinSB
·
2020-07-31 11:36
搜索
hdu1043
经典的八数码问题 逆向bfs打表 + 逆序数
题意:题意就是八数码,给了一个3*3的矩阵,上面有八个数字,有一个位置是空的,每次空的位置可以和他相邻的数字换位置,给你一些起始状态,给了一个最终状态,让你输出怎么变换才能达到目的.思路:首先我们先判断一下可不可以达到最终目的,方法是根据逆序数,只要终止状态和起始状态的逆序数(空的位置不算)奇偶性相同就能,否则不能;证明:加入当前空的位置是i,针对3*3的也就是八数码问题(可能有别的数码,根据奇偶
墨鱼大佬
·
2019-12-18 20:00
hdu1043
经典的八数码问题 逆向bfs打表 + 逆序数
题意:题意就是八数码,给了一个3*3的矩阵,上面有八个数字,有一个位置是空的,每次空的位置可以和他相邻的数字换位置,给你一些起始状态,给了一个最终状态,让你输出怎么变换才能达到目的.思路:首先我们先判断一下可不可以达到最终目的,方法是根据逆序数,只要终止状态和起始状态的逆序数(空的位置不算)奇偶性相同就能,否则不能;证明:加入当前空的位置是i,针对3*3的也就是八数码问题(可能有别的数码,根据奇偶
墨鱼大佬
·
2019-12-18 20:00
八数码 IDA* A *比较总结
HDU1043
POJ1077
这是一个经典的搜索题,做法很多可以详见此题的八境界做法,这里只阐述A*与IDA*算法。A*算法:简单来说是带估值函数的广搜。不同之处在于:对每个放入队列(opentable)的节点计算估值函数h(x),然后进行排序。这样出队时的顺序就不是自然顺序,而是有导向性的一个顺序,这样可以比直接搜索能更快的到达目标节点。缺点:A*算法与bfs一样,都是搜索当前节点下,下一步的所有走法,所以需要耗费大量的空间
卯足劲过样例
·
2019-03-17 23:33
bfs
dfs
hdu1043
Eight
A*算法f(n)=g(n)+h(n)#include #include #include #include #include usingnamespacestd; intaim=1,vis[1000000]; intnxt[4][2]={-1,0,1,0,0,-1,0,1}; intfac[]={1,1,2,6,24,120,720,5040,40320,362880}; charindex[5]
yexiaohhjk
·
2016-03-05 18:00
后缀数组:
HDU1043
Longest Common Substring
LongestCommonSubstringTimeLimit:8000/4000MS(Java/Others) MemoryLimit:65536/32768K(Java/Others)TotalSubmission(s):5375 AcceptedSubmission(s):1910ProblemDescriptionGiventwostrings,youhavetotellthe
TenderRun
·
2016-02-18 15:00
hdu1043
八数码问题
EightTimeLimit:10000/5000MS(Java/Others) MemoryLimit:65536/32768K(Java/Others)TotalSubmission(s):17589 AcceptedSubmission(s):4795SpecialJudgeProblemDescriptionThe15-puzzlehasbeenaroundforover100
u013504720
·
2016-01-15 14:00
hdu1043
Eight(康拓展开,记录路径)
利用康拓展开可以实现没有重复的hash判重。用pre[i]数组存储上一步i。用walk[i]数组存储从pre[i]到i的方向。/* title:Eight status:AC bywf,2016.1.10 */ #include #include #include #include #include #include #include #include #includ
纸牌
·
2016-01-10 19:00
POJ 1077 eight DBFS
和
HDU1043
一样的题目,这次用DBFS实现。 感觉写的还是不错的,中间一些细节错误了很多次。 具体见代码。
·
2015-11-13 14:54
poj
POJ 1077 eight DBFS
和
HDU1043
一样的题目,这次用DBFS实现。 感觉写的还是不错的,中间一些细节错误了很多次。 具体见代码。
·
2015-11-13 04:51
poj
【
hdu1043
&& poj 1077】八数码问题
题目大意: 给你一个九宫格的初始状态(一个空格+数字1~8),让你按规则走变成目标状态(数字按顺序排序+空格在最后),如果有这样的解法输出其中一种少操作步骤解法,否则输出unsolvable。 解题思路:超级经典的题目,解法超级多(据说有八重解法,和乾坤大挪移一样的,越到后面说明你越厉害),本来属于弱菜,只能达到三重。 &
·
2015-11-12 23:23
poj
HDU1043
Eight(BFS)
Eight(South Central USA 1998) Time Limit:5000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Description The 15-puzzle
·
2015-11-08 17:42
HDU
hdu1043
bfs 康拓展开
http://acm.hdu.edu.cn/showproblem.php?pid=1043ProblemDescriptionThe15-puzzlehasbeenaroundforover100years;evenifyoudon'tknowitbythatname,you'veseenit.Itisconstructedwith15slidingtiles,eachwithanumberfr
u013573047
·
2015-07-21 10:00
kuangbin带我飞 专题二 搜索进阶 第一题
HDU1043
(双向BFS+康托展开)
双向BFS这题需要特判无法变换到得情况,我们发现每次变换8个数字的逆序数奇偶性都是不变的,所以找出给定的序列的逆序数可以特判不存在的情况。康托展开:http://www.cnblogs.com/hxsyl/archive/2012/04/11/2443009.html开个结构体node2存当前的string,并且存它的x出现在哪个位置,然后把string康托展开得到一个数p当作是这个string的
Miracle_ma
·
2015-07-01 16:00
ACM
【双向广搜+逆序数优化】【
HDU1043
】【八数码】
HDU上的八数码数据强的一B首先:双向广搜先处理正向搜索,再处理反向搜索,直至中途相遇visit和队列都是独立的。可以用一个过程来完成这2个操作,减少代码量。(一般还要个深度数组)优化效率很强逆序数优化在忽略空格的情况,会发现空格无论怎么变,1-8的排列的逆序数始终要为偶数,才能有解(空格无视)而且证明得出:如果满足逆序条件,必定有解!拓展N*N的情况N×N的棋盘,N为奇数时,与八数码问题相同。N
zy691357966
·
2015-04-13 21:00
HDU1043
:Eight HDU3567:Eight II(康拓展开+bfs搜索)
HDU1043
:Eight这个题还算好过,用我刚整理的康拓展开的模板直接就ok的,需要注意的是对于这种终态唯一的题目,一般用终态来反搜初态,就是一边bfs记录下所有答案,如此如此,看下AC程序的主函数就能理解的
u014569598
·
2015-03-07 00:00
HDU 搜索进阶专题
HDU搜索进阶专题去年听ReDow讲A*,IDA*,当时小菜(现在也是),就没把那些东西列在学习范围内,前些天LCY让我讲搜索进阶,就做了几题,分享下做题感受~~
HDU1043
Eight涉及到人生完不完整的一道题
·
2014-09-30 10:00
算法
搜索
ACM
DFS
bfs
HDU1043
:Eigth(康托展开)
ProblemDescription The15-puzzlehasbeenaroundforover100years;evenifyoudon'tknowitbythatname,you'veseenit.Itisconstructedwith15slidingtiles,eachwithanumberfrom1to15onit,andallpackedintoa4by4framewithon
libin56842
·
2014-04-05 22:00
HDU
康托展开
hdu1043
Eight (八数码问题,多种解法)
hdu1043
:http://acm.hdu.edu.cn/showproblem.php?
yew1eb
·
2014-02-19 15:00
搜索练习题集
HDU1043
Eight涉及到人生完不完整的一道题,有位大神总结出了八数码的8重境界,可见其经典程度无出其右~~A*:因为每次移动都会影响一个点的曼哈顿距离(不算x),构造h()为所有数字块的曼哈顿距离和
yew1eb
·
2013-07-18 19:00
ACM
搜索专题
POJ 1077 eight DBFS
和
HDU1043
一样的题目,这次用DBFS实现。感觉写的还是不错的,中间一些细节错误了很多次。具体见代码。
kdqzzxxcc
·
2013-04-18 00:00
hdu 1043 搜索
【转载】
hdu1043
搜索http://www.cnblogs.com/ambition/archive/2011/07/25/search_plus.html
YAIMH1993的笔记
·
2012-10-20 12:00
上一页
1
2
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他