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

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

HDU 1253 勝利大逃亡

2019-11-06 06:33:47
字體:
來源:轉載
供稿:網友

http://acm.hdu.edu.cn/showPRoblem.php?pid=1253

題意就不多說了  迷宮類問題   用bfs 即可  

代碼如下:

#include <stdio.h>#include <queue>#include <string.h>using namespace std; int A,B,C,T;int map[55][55][55];int vis[55][55][55];int dirx[]={0,0,0,0,1,-1};int diry[]={0,0,1,-1,0,0};int dirz[]={1,-1,0,0,0,0};int flag;struct node{	int x;	int y;	int z;	int step; }; int judge(int x,int y,int z){	if (x>=0&&x<A&&y>=0&&y<B&&z>=0&&z<C&&vis[x][y][z]==0&&map[x][y][z]==0)		return 1;	return 0;} void bfs(){	queue<node>Q;	node a;	a.x=0;	a.y=0;	a.z=0;	a.step=0;	vis[0][0][0]=1;	Q.push(a);			flag=1; 	while (!Q.empty()){		a=Q.front();		Q.pop();			if (a.step>T)//剛開始沒加這個判斷 超時了 好多次  加了以后 1950ms 險過   		{			break;		}		if (a.x==A-1&&a.y==B-1&&a.z==C-1&&a.step<=T){			printf ("%d/n",a.step);			flag=0;			break;					}												for (int i=0;i<6;i++){			node b;			b=a;			b.x+=dirx[i];			b.y+=diry[i];			b.z+=dirz[i];			if (judge(b.x,b.y,b.z)){				b.step++;				vis[b.x][b.y][b.z]=1;				Q.push(b);			}								} 					}		if (flag){		printf ("-1/n");	}}int main (){	int n;		scanf ("%d",&n);	while (n--){		scanf ("%d%d%d%d",&A,&B,&C,&T);		for (int i=0;i<A;i++){			for (int j=0;j<B;j++){				for (int k=0;k<C;k++){					scanf ("%d",&map[i][j][k]);				}			}		} 				memset(vis,0,sizeof(vis));				bfs();			}	return 0;}    希望大神給提些建議。。。。。。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 平湖市| 隆昌县| 井研县| 濉溪县| 鹤峰县| 米林县| 德保县| 阳泉市| 平乡县| 敖汉旗| 乌兰浩特市| 琼中| 天门市| 澳门| 卢氏县| 丰镇市| 中方县| 南昌县| 武功县| 上虞市| 青浦区| 宁波市| 建阳市| 赤峰市| 车险| 昌宁县| 宁阳县| 江陵县| 来安县| 浮山县| 镇原县| 淮南市| 临澧县| 桂平市| 汾阳市| 神木县| 县级市| 普宁市| 射阳县| 嘉峪关市| 临沂市|