国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

HDU - 2102 A計劃 (BFS) [kuangbin帶你飛]專題二

2019-11-08 18:52:38
字體:
來源:轉載
供稿:網友

       思路:接BFS判斷能否在限制時間內到達公主的位置,注意如果騎士進入傳送機就會被立即傳送到另一層,不會能再向四周移動了,例如第一層的位置(x, y, 1)是傳送機,第二層(x, y, 2)也是傳送機,這種情況騎士會一直被傳上傳下。

   AC代碼: 0ms

#include<cstdio>#include<cmath>#include<cstring>#include<queue>using namespace std;const int maxn = 15;char G[2][maxn][maxn];int d[2][maxn][maxn];int n, m, Limit;const int dx[] = {0,0,-1,1};const int dy[] = {1,-1,0,0};const int dz[] = {1,-1};struct point{	int x, y, z;	point(){	}	point(int x, int y, int z):x(x), y(y), z(z){	}};bool bfs() {	memset(d, -1, sizeof(d));	d[0][0][0] = 0;	queue<point>q;	q.push(point(0, 0, 0));	while(!q.empty()) {		point p = q.front(); 		q.pop();		int x = p.x, y = p.y, z = p.z;		if(d[z][x][y] > Limit) return false;		if(G[z][x][y] == 'P') return true;				int flag = 0;		if(G[z][x][y] == '#') { //傳送機 			flag = 1;			for(int i = 0; i < 2; ++i) {				int pz = z + dz[i];				if(pz < 0 || pz >= 2) continue;				if(G[pz][x][y] == '*' || d[pz][x][y] != -1) continue;				d[pz][x][y] = d[z][x][y];				q.push(point(x, y, pz));			}		}		if(flag) continue;				for(int i = 0; i < 4; ++i) {			int px = x + dx[i], py = y + dy[i];			if(px < 0 || py < 0 || px >= n || py >= m) continue;			if(d[z][px][py] != -1 || G[z][px][py] == '*') continue;			d[z][px][py] = d[z][x][y] + 1;			q.push(point(px, py, z));		}	}	return false;}int main() {	int T;	scanf("%d", &T);	while(T--) {		scanf("%d%d%d", &n, &m, &Limit);		for(int i = 0; i < 2; ++i) {			for(int j = 0; j < n; ++j) scanf("%s", G[i][j]);		}		if(bfs()) PRintf("YES/n");		else printf("NO/n");	}	return 0;}如有不當之處歡迎指出!


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 含山县| 石河子市| 长丰县| 北流市| 蓝田县| 峨眉山市| 鹤壁市| 建瓯市| 比如县| 仙居县| 吴川市| 芦山县| 长武县| 布尔津县| 林西县| 桐乡市| 玛多县| 新蔡县| 同江市| 平昌县| 中宁县| 莱西市| 大庆市| 色达县| 洞口县| 堆龙德庆县| 廊坊市| 毕节市| 老河口市| 明星| 丹凤县| 青龙| 鹤壁市| 海安县| 卢龙县| 红安县| 铜鼓县| 平度市| 南乐县| 蒙阴县| 衡山县|