AOJ 0121 Seven Puzzle】的更多相关文章

From: AOJ 0121 思路:与前几题的bfs不同,这次的bfs没有明确的移动对象,看似任意一个数都可以当成对象移动.这时我们只需要抓住一个格子就行,比如我们把0作为移动对象,那么0在地图中漫游所有的格子得到的肯定就是问题的解空间.由于题目的输入是多个case,如果对每个case都运行一遍bfs就会TLE.这时我们祭出dp技能,只需要一次bfs就将解空间算出来,以后每个case只要到解空间中去找就行了. #include <iostream> #include <string>…
转载自:  http://m.blog.csdn.net/blog/Enjoying_Science/42008801 题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=49880 题意:7数码问题.在2×4的棋盘上,摆有7个棋子,每个棋子上标有1至7的某一数字,不同棋子上标的数字不相同.棋盘上还有一个空格(用0表示),与空格相邻(上下左右)的棋子可以移到空格中,该棋子原先位置成为空格.给出一个初始状态(保证可以转移…
7 パズル 7 パズルは 8 つの正方形のカードとこれらのカードがぴたりと収まる枠で構成されています.それぞれのカードには.互いに区別できるように 0, 1, 2, ..., 7 と番号がつけられています.枠には.縦に 2 個.横に 4 個のカードを並べることができます. 7 パズルを始めるときには.まず枠にすべてのカードを入れます.枠のなかで 0 のカードだけは.上下左右に隣接するカードと位置を交換することができます.たとえば.枠の状態が図(a) のときに.0 のカードの右に隣接した.7 のカ…
原题 题意 题意是有一个输入,比方: 1 0 2 3 4 5 6 7 摆成例如以下形状: 1 0 2 3 4 5 6 7 0表示空格.其它数字能够移动到0的位置.最后须要到例如以下形状: 0 1 2 3 4 5 6 7 上面的这样的情况是须要移动一步,也就是0和1直接移动就好. 代码 #include<iostream> #include<string> #include<algorithm> #include<queue> #include<map&…
这题应该算是经典的八数码问题的弱化版吧:给你一个4x2的方版,上面有0-7 八个数字,每次只能让编号0的方格跟他的上下左右的方格交换:所以也就是把方格0当做空格看待,每次只有空格周围的方格能够向空格处移动.   然后问从输入的方格样式变换到字典序最小的"01234567" 最少需要多少次. 解法是用bfs 求最少次数(跟求最短路径方式类似).   我这里用的是打表的方法:对于方格的状态,我是用string来存的,下标0-7分别表示从左到右,从上到下的方格上的数字.  一开始队列中只放入…
题意:7数码问题.在2×4的棋盘上,摆有7个棋子,每个棋子上标有1至7的某一数字,不同棋子上标的数字不相同.棋盘上还有一个空格(用0表示),与空格相邻(上下左右)的棋子可以移到空格中,该棋子原先位置成为空格.给出一个初始状态(保证可以转移到最终状态),找出一种从初始状态转变成给定最终状态的移动棋子步数最少的移动步骤. 输入:多组输入,每组8个数,表示初始状态前四个数为第一行从左到右,后四个数为第二行从左到右. 输出:至少需要多少步可以从输入状态到达最终状态(0 1 2 3 4 5 6 7) (题…
一遍预处理跑完所有情况,O(1)回答就好.状态记录我用的康拓和逆康拓. #include<bits/stdc++.h> using namespace std; ]; ]; ]; int cantor() { ; ; i < ; i++){ ; ; ){ if(u[i]>u[j]) inv++; } re += fac[-i]*inv; } return re; } void invCantor(int x) { ] = {}; ; i < ; i++){ -i]; x %=…
Profile Introduction to Blog 您能看到这篇博客导读是我的荣幸.本博客会持续更新.感谢您的支持.欢迎您的关注与留言.博客有多个专栏,各自是关于 Android应用开发 .Windows App开发 . UWP(通用Windows平台)开发 . SICP习题解 和 Scheme语言学习 . 算法解析 与 LeetCode等题解 .而近期会加入的文章将主要是算法和Android.只是其他内容也会继续完好. About the Author 独立 Windows App 和…
POJ 1852 Ants POJ 2386 Lake Counting POJ 1979 Red and Black AOJ 0118 Property Distribution AOJ 0333 Ball POJ 3009 Curling 2.0 AOJ 0558 Cheese POJ 3669 Meteor Shower AOJ 0121 Seven Puzzle POJ 2718 Smallest Difference POJ 3187 Backward Digit Sums POJ 3…
-->Seven Puzzle 原文是日语 这里就直接写中文了  Descriptions: 7拼图由8个正方形的卡和这些卡片完全收纳的框构成.每张卡都编号为0, 1, 2, …, 7,以便相互区别.框架中,可以纵向排列2张,横向排列4张卡. 7当拼图开始时,首先把所有的卡放入框架.在框架中只有0的卡可以与上下左右相邻的卡交换位置.例如,当框架的状态为图A时,与0卡的右边相邻的.7的卡交换位置,就变成图B的状态.或者,从图(a)的状态与0卡下面邻接的2卡交换位置的话,成为图c的状态.在图(a)的…