裸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. gunplot demo

    //author : Leon yangli0534@gmail.com #include <stdlib.h> #include <stdio.h> #include < ...

  2. Unity4.6新UI系统初探(uGUI)

    一.引言 Unity终于在即将到来的4.6版本内集成了所见即所得的UI解决方案(视频).事实上从近几个版本开始,Unity就在为这套系统做技术扩展,以保证最终能实现较理想的UI系统.本文试图通过初步的 ...

  3. java9-5 修饰符

    1. 修饰符: 权限修饰符:private,默认的,protected,public 状态修饰符:static,final 抽象修饰符:abstract 类: 权限修饰符:默认修饰符,public 状 ...

  4. 程序4-6 utime函数实例

    //http://blog.chinaunix.net/uid-24549279-id-71355.html /* ========================================== ...

  5. Redis集群知识解析

    redis集群在启动的时候就自动在多个节点间分好片.同时提供了分片之间的可用性:当一部分redis节点故障或网络中断,集群也能继续工作.但是,当大面积的节点故障或网络中断(比如大部分的主节点都不可用了 ...

  6. FMDB 使用方法

    优秀的第三方库,README 也是很优秀的,理解了 README,会对使用带来很多便利. ARC 和 MRC 项目中使用 ARC 还是 MRC,对使用 FMDB 都没有任何影响,FMDB 会在编译项目 ...

  7. Asp.net设计模式笔记之一:理解设计模式

    GOF设计模式著作中的23种设计模式可以分成三组:创建型(Creational),结构型(Structural),行为型(Behavioral).下面来做详细的剖析. 创建型 创建型模式处理对象构造和 ...

  8. 20155224聂小益 - 我的技能与C语言学习

    20155224聂小益 - 我的技能与C语言学习 预备作业2 ● 你有什么技能比大多人(超过90%以上)更好? 我认为我可能有些技能身边有的人比较少有,但是要是超过90%以上我实在不敢保证.毕竟厉害的 ...

  9. 【原创】基于Memcached 实现用户登录的Demo(附源码)

    一个简单的Memcached在Net中运用的一个demo.主要技术 Dapper+MVC+Memcached+sqlserver, 开发工具为vs2015+Sql 效果图如下: 登录后 解决方案 主要 ...

  10. iOS简易柱状图(带动画)--新手入门篇

    叨逼叨 好久没更新博客了,才几个月,发生了好多事情,处理了好多事情.不变的是写代码依然在继续. 做点啥子 看看objective-c的书,学着写了个柱状图,只是练习的demo而已,iOS上的图表控件已 ...