HDU A计划
来源:互联网 发布:快手后期制作视频软件 编辑:程序博客网 时间:2024/05/18 09:33
A计划
Time Limit : 3000/1000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other)
Total Submission(s) : 178 Accepted Submission(s) : 71
Font: Times New Roman | Verdana | Georgia
Font Size: ← →
Problem Description
现据密探所报,公主被关在一个两层的迷宫里,迷宫的入口是S(0,0,0),公主的位置用P表示,时空传输机用#表示,墙用*表示,平地用.表示。骑士们一进入时空传输机就会被转到另一层的相对位置,但如果被转到的位置是墙的话,那骑士们就会被撞死。骑士们在一层中只能前后左右移动,每移动一格花1时刻。层间的移动只能通过时空传输机,且不需要任何时间。
Input
Output
Sample Input
15 5 14S*#*..#........****....#...*.P#.*..***.....*.*.#..
Sample Output
YES
#include<iostream>
#include<cstdio>
#include<queue>
int n, m, t, d[4][2] = { {1,0},{-1,0},{0,1},{0,-1} };
char a[2][11][11];
using namespace std;
struct node
{
int x, y, z, T;
};
int main()
{
int C; scanf_s("%d", &C);
while (C--)
{
scanf_s("%d%d%d", &n, &m, &t);
int x4, y4, z4;
for (int i = 0; i < 2; i++)
for (int j = 0; j < n; j++)
cin >> a[i][j];
for (int i = 0; i < 2; i++)
for (int j = 0; j < n; j++)
for (int k = 0; k < m; k++)
{
if (a[i][j][k] == 'S') x4 = i, y4 = j, z4 = k;
if (a[i][j][k] == '#'&&a[i ^ 1][j][k] == '#')
a[i][j][k] = '*', a[i ^ 1][j][k] = '*';
if (a[i][j][k] == '#'&&a[i ^ 1][j][k] == '*')
a[i][j][k] = '*';
}
queue<node> P; bool bb = 0; a[x4][y4][z4] = '*';
node dc1; dc1.x = x4, dc1.y = y4, dc1.z = z4, dc1.T = 0;
P.push(dc1);
while (!P.empty())
{
node dr = P.front(); P.pop();
if (a[dr.x][dr.y][dr.z] == 'P')
{
if (dr.T <= t)
{
bb = 1; printf("YES\n"); break;
}
else break;
}
for (int i = 0; i < 4; i++)
{
int x1 = dr.x, y1 = dr.y + d[i][0], z1 = dr.z + d[i][1], T1 = dr.T + 1;
if (y1 >= 0 && y1 < n&&z1 >= 0 && z1 < m&&T1 <= t)
{
if (a[x1][y1][z1] == '#')
{
if (a[x1 ^ 1][y1][z1] == '*') continue;
a[x1][y1][z1] = '*';
node dc2; dc2.x = x1 ^ 1, dc2.y = y1, dc2.z = z1, dc2.T = T1;
P.push(dc2);
}
if (a[x1][y1][z1] == '.')
{
a[x1][y1][z1] = '*';
node dc3; dc3.x = x1, dc3.y = y1, dc3.z = z1, dc3.T = T1;
P.push(dc3);
}
if (a[x1][y1][z1] == 'P')
{
node dc; dc.x = x1, dc.y = y1, dc.z = z1, dc.T = T1;
P.push(dc);
}
}
}
}
if (bb == 0) printf("NO\n");
while (!P.empty()) P.pop();
}
return 0;
}
- hdu 2102 A计划
- HDU-2102-A计划
- HDU 2102 A计划
- HDU 2102 A计划
- HDU 2102 A计划
- hdu 2102 A计划
- hdu 2102 A计划
- hdu 2102 A计划
- hdu 2102 A计划
- hdu(2102) A计划
- hdu 2102 A计划
- HDU 2101 A计划
- HDU 1005 A计划
- HDU 2102 A计划
- HDU 2102 A计划
- HDU 2102 A计划
- HDU 2102A计划
- HDU 2102 A计划
- 3天网站流量增加100IP,我是怎么做到的?
- 文本情感分类(一)
- STM32串口循环队列数据处理案例
- webpack3实战(5)打包一个多页、jQuery、图片转base64、压缩混淆、异步模块加载的项目
- STM32编译错误Error:A1067E
- HDU A计划
- 解决Eclipse编辑器保存(Ctrl+S)时卡顿问题
- 【读书笔记】iOS-发布你的促销消息-推动通知
- 并发编程之CountDownLatch
- 购物车1
- 【传智播客郑州校区分享】线程精进指南之线程池进阶
- 牛顿法公式推导与python实现
- 关于自己电脑写的winfrom程序在别人那里用不了,异常抛出缺少xxxx.dll相关解决办法。
- 刘志明 | 知识图谱及金融相关