BZOJ SCOI2005骑士精神
裸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骑士精神的更多相关文章
- Bzoj 1085: [SCOI2005]骑士精神 (dfs)
Bzoj 1085: [SCOI2005]骑士精神 题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=1085 dfs + 剪枝. 剪枝方法: ...
- BZOJ 1085: [SCOI2005]骑士精神( IDDFS + A* )
一开始写了个 BFS 然后就 T 了... 这道题是迭代加深搜索 + A* -------------------------------------------------------------- ...
- BZOJ 1085 [SCOI2005]骑士精神 【A*启发式搜索】
1085: [SCOI2005]骑士精神 Time Limit: 10 Sec Memory Limit: 162 MB Submit: 2838 Solved: 1663 [Submit][St ...
- BZOJ(7) 1085: [SCOI2005]骑士精神
1085: [SCOI2005]骑士精神 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 3233 Solved: 1911[Submit][Stat ...
- BZOJ1085: [SCOI2005]骑士精神 [迭代加深搜索 IDA*]
1085: [SCOI2005]骑士精神 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1800 Solved: 984[Submit][Statu ...
- A*算法详解 BZOJ 1085骑士精神
转载1:A*算法入门 http://www.cppblog.com/mythit/archive/2009/04/19/80492.aspx 在看下面这篇文章之前,先介绍几个理论知识,有助于理解A*算 ...
- 【bzoj1085】[SCOI2005]骑士精神
1085: [SCOI2005]骑士精神 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1757 Solved: 961[Submit][Statu ...
- BZOJ_1085_[SCOI2005]骑士精神_IDDFS
BZOJ_1085_[SCOI2005]骑士精神_DFS Description 在一个5×5的棋盘上有12个白色的骑士和12个黑色的骑士, 且有一个空位.在任何时候一个骑士都能按照骑 士的走法(它可 ...
- [luogu P2324] [SCOI2005]骑士精神
[luogu P2324] [SCOI2005]骑士精神 题目描述 输入输出格式 输入格式: 第一行有一个正整数T(T<=10),表示一共有N组数据.接下来有T个5×5的矩阵,0表示白色骑士,1 ...
随机推荐
- MVC+AjaxFileUpload文件上传
来源:微信公众号CodeL 本次给大家分享的是ajaxfileupload文件上传插件,百度一大堆功能超炫的文件上传插件,为什么我们会选择这个插件呢? 原因是在此之前,我们尝试使用过很多基于flash ...
- python 邮件发送 脚本
import smtplib from email.header import Header from email.mime.text import MIMEText from_addr = 'XXX ...
- python实现虚拟茶话会
这个项目目的是编写一个聊天服务器,该聊天服务器的功能有: 服务器能同时接收来自不同用户的连接 允许用户同时操作 能够解释命令,例如,say或者logout命令 服务器容易扩展 这个项目里面我们会使用到 ...
- Android外部SD卡的读取
package com.kevin.writeorreadfile1_1; import android.app.Activity; import android.bluetooth.le.ScanF ...
- 《至少有那天》——IU
//<你的意义>中文版 那天冷的让人好想哭 可是我那一天看到了爱情 湖边的薄冰和老树 就在零下七度那一天 你和我牵手 慢慢聊着以前那些童话 可能它们都有些意义吧 是吗 一个吻 一滴眼泪 一 ...
- 每日一语:What is he getting at?
What is he getting at? 他讲这话是什么意思? 2015-1-12
- IO流的练习 —— 创建用户注册、登陆案例
把上次用集合做的时候的分析拿出来 需求: 用户登录注册案例 按照如下操作,可以让我们更符合面向对象思想: A:这个案例有哪些类 B:每个类中又有哪些东西 C:类与类之间的关系 分析: A:这个案例有哪 ...
- javascript js string.Format()收集
方案1http://www.cnblogs.com/loogn/archive/2011/06/20/2085165.html String.prototype.format = function(a ...
- 安卓版微信内置浏览器,<a href="tel:电话号码"></a> 这个链接失效,不能跳到拨号界面?
https://segmentfault.com/q/1010000000318831 在URL最后面加“ #mp.weixin.qq.com ”,应该加其他qq.com的二级域名都行,估计是微信的安 ...
- pandas 前后行操作
一.前后行满足条件 问题: 各位老师好,我有一个dataframe 产品 数据1 数据2 A 1 2 B 4 5 C 6 3 我想找出比如这一行数据1>数据2 AND 数据1的上一行3 AND ...