裸IDA*,ans从1到15循环来限制搜索深度。

 #include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int d,s[][],ans;
char c;
bool flag;
int ma[][]={{,,,,,},
{,,,,,},
{,,,,,},
{,,,,,},
{,,,,,},
{,,,,,}},dx[]={,,,,-,-,-,-},dy[]={,,-,-,-,-,,};
void swap(int &a,int &b){int c=a;a=b;b=c;}
bool check()
{
int i,j;
for (i=;i<=;++i)for (j=;j<=;++j)if (s[i][j]!=ma[i][j]) return ;
return ;
}
bool f(int g)
{
int h=,i,j;
for (i=;i<=;++i)for (j=;j<=;++j)if (s[i][j]!=ma[i][j])
{h++; if (g+h>ans) return ;}
return ;
}
void dfs(int x,int y,int g)
{
if (g==ans)
{
if (check()) flag=;
return;
}
if (flag) return;
int i,nowx,nowy;
for (i=;i<;++i)
{
nowx=x+dx[i];nowy=y+dy[i];
if ((nowx<)||(nowy<)||(nowx>)||(nowy>)) continue;
swap(s[x][y],s[nowx][nowy]);
if (f(g)) dfs (nowx,nowy,g+);
swap(s[nowx][nowy],s[x][y]);
}
}
int main()
{
int i,j,t,x,y;
scanf("%d\n",&t);
while (t>){t--;
for (i=;i<=;++i)
{
for (j=;j<=;++j)
{
c=getchar();
if (c=='*') s[i][j]=,x=i,y=j;
else s[i][j]=int(c-'');
}
scanf("\n");
} flag=;
for (ans=;ans<=;++ans)
{
dfs(x,y,);
if (flag) break;
}
if (flag) printf("%d\n",ans);
else printf("-1\n");
}
return ;
}

BZOJ SCOI2005骑士精神的更多相关文章

  1. Bzoj 1085: [SCOI2005]骑士精神 (dfs)

    Bzoj 1085: [SCOI2005]骑士精神 题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=1085 dfs + 剪枝. 剪枝方法: ...

  2. BZOJ 1085: [SCOI2005]骑士精神( IDDFS + A* )

    一开始写了个 BFS 然后就 T 了... 这道题是迭代加深搜索 + A* -------------------------------------------------------------- ...

  3. BZOJ 1085 [SCOI2005]骑士精神 【A*启发式搜索】

    1085: [SCOI2005]骑士精神 Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 2838  Solved: 1663 [Submit][St ...

  4. BZOJ(7) 1085: [SCOI2005]骑士精神

    1085: [SCOI2005]骑士精神 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 3233  Solved: 1911[Submit][Stat ...

  5. BZOJ1085: [SCOI2005]骑士精神 [迭代加深搜索 IDA*]

    1085: [SCOI2005]骑士精神 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1800  Solved: 984[Submit][Statu ...

  6. A*算法详解 BZOJ 1085骑士精神

    转载1:A*算法入门 http://www.cppblog.com/mythit/archive/2009/04/19/80492.aspx 在看下面这篇文章之前,先介绍几个理论知识,有助于理解A*算 ...

  7. 【bzoj1085】[SCOI2005]骑士精神

    1085: [SCOI2005]骑士精神 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1757  Solved: 961[Submit][Statu ...

  8. BZOJ_1085_[SCOI2005]骑士精神_IDDFS

    BZOJ_1085_[SCOI2005]骑士精神_DFS Description 在一个5×5的棋盘上有12个白色的骑士和12个黑色的骑士, 且有一个空位.在任何时候一个骑士都能按照骑 士的走法(它可 ...

  9. [luogu P2324] [SCOI2005]骑士精神

    [luogu P2324] [SCOI2005]骑士精神 题目描述 输入输出格式 输入格式: 第一行有一个正整数T(T<=10),表示一共有N组数据.接下来有T个5×5的矩阵,0表示白色骑士,1 ...

随机推荐

  1. SDRAM总结

    使用的流程 W9825G6JH winbond sdram 4M words X 4banks X 16bits=. Accesses to the SDRAM are burst oriented. ...

  2. 边工作边刷题:70天一遍leetcode: day 89

    Word Break I/II 现在看都是小case题了,一遍过了.注意这题不是np complete,dp解的time complexity可以是O(n^2) or O(nm) (取决于inner ...

  3. codeforces 487B B. Strip(RMQ+二分+dp)

    题目链接: B. Strip time limit per test 1 second memory limit per test 256 megabytes input standard input ...

  4. Sprite Editor 图集切片精灵

    切图需求 假设有一张大的UI的图集,我们想把它里面的小图一张一张地切割出来,如果有plist文件,请查阅我的另一篇文章<还原TexturePacker plist 文件 切开各小图片> 今 ...

  5. android源码在线查看

    http://grepcode.com/project/repository.grepcode.com/java/ext/com.google.android/android/

  6. HTML5和css3的总结三

    继续总结H5的新东西 1>序列化与反序列化 序列化:其实就是一个json->string的过程 JSON.stringify(json); 反序列化:string->json的过程( ...

  7. javascript中的后退和刷新

    <input type=button value=刷新 onclick="window.location.reload()"><input type=button ...

  8. [经验分享] 最近调试FT232H遇到的坑

    cnblogs.com Yeats叶子 原创,转载请注明原始地址 - http://www.cnblogs.com/xiedidan/p/ft232h-poc.html Abstract FT232H ...

  9. 爱奇艺招聘uwp开发

    招聘链接:https://job.cnblogs.com/offer/53380/ 工作地点:北京-海淀 工作年限:1年 学历要求:本科 招聘分类:移动开发工程师 工资范围:面议 职位要求 1.扎实的 ...

  10. CLR Profiler

    检查c#代码内存泄露工具-CLR Profiler 大家都知道.net有一套自己的内存(垃圾)回收机制,除非有一些数据(方法)长期占有内存不随着垃圾回收功能而释放内存,这样就造成了我们经常说的内存泄露 ...