hdu 1983 Kaitou Kid - The Phantom Thief (2)
#include <cstdio>
#include <iostream>
#include <cstring>
#include <string>
#include <cstdlib>
#include <algorithm>
#include <cmath>
#include <set>
#include <list>
#include <queue>
using namespace std;
#define L(i) i<<1
#define R(i) i<<1|1
#define INF 0x3f3f3f3f
#define pi acos(-1.0)
#define maxn 1<<16
#define mem(a) memset(a,0,sizeof(a))
const double eps = 1e-10;
int n,m,t,ans;
char map[10][10];
int vis[2][10][10];
int mx[4] = {0,0,1,-1};
int my[4] = {1,-1,0,0};
struct node
{int x,y,t,k;int rox[64],roy[64];
}start,end,temp,in;
void dfs(int deep)
{if(deep > ans)return;int minstep = -1;node q;queue <node> Q;Q.push(start);mem(vis);vis[0][start.x][start.y] = 1;while(!Q.empty()){q = Q.front();Q.pop();if(q.t > t)continue;if(q.k && map[q.x][q.y] == 'E'){minstep = q.t;break;}for(int i = 0; i < 4; i++){int dx = q.x + mx[i];int dy = q.y + my[i];if(dx < 0 || dx >= n || dy < 0 || dy >= m)continue;if(map[dx][dy] == '#')continue;if(map[dx][dy] == 'J')in.k = 1;elsein.k = q.k;if(vis[in.k][dx][dy])continue;vis[in.k][dx][dy] = 1;in.x = dx;in.y = dy;in.t = q.t + 1;for(int j = 1; j <= q.t; j++){in.rox[j] = q.rox[j];in.roy[j] = q.roy[j];}in.rox[in.t] = dx;in.roy[in.t] = dy;Q.push(in);}}if(minstep == -1){if(deep < ans)ans = deep;return;}for(int i = 1; i < q.t; i++){char c = map[q.rox[i]][q.roy[i]];if(c == 'S' || c == 'E')continue;map[q.rox[i]][q.roy[i]] = '#';dfs(deep+1);map[q.rox[i]][q.roy[i]] = c;}
}
int main()
{int T;scanf("%d",&T);while(T--){scanf("%d%d%d",&n,&m,&t);for(int i = 0; i < n; i++)scanf("%s",map[i]);int i,j;memset(vis,false,sizeof(vis));for(i = 0; i < n; i++)for(j = 0; j < m; j++){if(map[i][j] == 'S'){start.x = i;start.y = j;start.t = 0;start.k = 0;break;}}ans = 4;dfs(0);printf("%d\n",ans);}return 0;
}
hdu 1983 Kaitou Kid - The Phantom Thief (2)相关推荐
- hdu 1983 Kaitou Kid - The Phantom Thief (2)【Bfs+暴力枚举】
Kaitou Kid - The Phantom Thief (2) Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32 ...
- HDU - 1982 Kaitou Kid - The Phantom Thief
HDU - 1982 Kaitou Kid - The Phantom Thief 传送门 问题描述: Do you know Kaitou Kid? In the legend, Kaitou Ki ...
- HDU 1983:Kaitou Kid - The Phantom Thief (2)
Kaitou Kid - The Phantom Thief (2) Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32 ...
- 『杭电1982』Kaitou Kid - The Phantom Thief (1)
#include <bits/stdc++.h> using namespace std; string str[10010]; string str1[10010]; int main ...
- AtCoder AGC031E Snuke the Phantom Thief (费用流)
题目链接 https://atcoder.jp/contests/agc031/tasks/agc031_e 题解 做法一(我的做法) 这是我yy出来的一个上下界费用流做法,自己没找到什么反例,能过. ...
- [AGC031E] Snuke the Phantom Thief(网络流)
考虑枚举偷的珠宝的个数k,且假设它们按照坐标大小排好了序(x坐标排一次,y坐标排一次). 那么可以将条件转化一下, 在珠宝按x坐标排好序时, x坐标大于等于aia_iai的最多取bib_ibi个可 ...
- HDU-基础搜索总结
Dfs: 1241 Oil Deposits 题解:https://blog.csdn.net/HeZhiYing_/article/details/81053035 1016 Prime Ring ...
- ACM集训STL(1)学习杂记(二)——E题~H题
STL(1) (E)Online Judge 很简单的一道题,再看自己的代码会发现一些没必要的地方. Online Judge Ignatius is building an Online Judge ...
- HDOJ搜索题辑录I(总计100题)
DFS(Depth First Search ) 一般是不用hash的,所以很多时候称之为"暴力",也就是穷举所有情况,一般看几个我们OJ的dfs的版本的题目就可以模仿着做了,因为 ...
最新文章
- C++对象模型详解(上)
- 4、Power Map—实例:演示报告封面
- Tomcat之Windows下安装
- 机器学习之 weka学习(六)最大内存
- 数据仓库入门(实验10)在Excel中查询层次结构
- docker私有仓库Harbor 使用文档
- Reveal v4(8796) 使用
- jQuery的ajax提交表单
- 微课|《Python编程基础与案例集锦(中学版)》第3章例题讲解(2)
- 为什么我们做不到【员工篇】作者:金刚波
- 显卡驱动设备状态代码31
- linux 网站图片无法加载失败怎么办,网页无法加载图片怎么办?解决网页图片无法显示的方法...
- 一年的网络学习经历小结
- 数据挖掘与机器学习——数据挖掘概述
- 【项目分享】基于AB32和RT-Thread的墨水屏智能日历
- “d3dx9.h”: No such file or directory 解决办法
- 【SRE笔记 2022.9.21 网络及TCP握手】
- 汉诺塔(C语言实现)
- 第七届 Sky Hackathon 笔记集合贴
- “postcss-px-to-viewport”——移动端前端适配的又一种方案
热门文章
- Debian11系统安装
- 社会管理网格化 源码_威县方家营镇创新“网格化”管理模式,助推乡村社会治理能力提升...
- Task5样式色彩秀芳华
- 密码学归约证明——选择明文攻击下的不可区分性
- mybatis的错误:Failed to load ApplicationContext
- rpmbuild SPEC文件的语法
- Redis 互联网开发必看
- 量子计算第一股IonQ:“小众”离子阱如何弯道超车
- windows 7正版才是王道
- C#流程控制————分支结构