HDU1253
<div id="cnblogs_post_body"><div class="cnblogs_code" >http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gifhttp://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gifView Code <div id="cnblogs_code_open_10878aa7-9f90-43f4-8f72-3868644a5cca" class="cnblogs_code_hide"> 1 #include<cstdio> 2 #include<cstdlib> 3 #include<cstring> 4 #include<iostream> 5 #include<queue> 6 #include<algorithm> 7 #define N 55 8 int map; 9 int a,b,c,maxt,ans;10 int fmin(int i,int j){11 return i>j?j:i;12 }13 using namespace std;14 struct point {15 int x,y,z;16 int lev;17 };18 point p,pp;19 queue<point>q;20 int dx[6]={0,-1,0,1,0,0};21 int dy[6]={-1,0,1,0,0,0};22 int dz[6]={0,0,0,0,1,-1};23 24 void bfs(int sz,int sx,int sy){25 int i,j,k,tx,ty,tz;26 p.x=sx;27 p.y=sy;28 p.z=sz;29 p.lev=0;30 while(!q.empty())31 q.pop();32 q.push(p);33 while(!q.empty()){34 p=q.front();35 q.pop();36 if(p.x==b-1&&p.y==c-1&&p.z==a-1){37 ans=fmin(ans,p.lev);38 }39 for(i=0;i<6;i++){40 pp.x=p.x;41 pp.y=p.y;42 pp.z=p.z;43 pp.x+=dx;44 pp.y+=dy;45 pp.z+=dz;46 if(pp.z<0||pp.z>=a||pp.x<0||pp.x>=b||pp.y<0||pp.y>=c||map==1)47 continue;48 map=1;49 pp.lev=p.lev+1;50 q.push(pp);51 }52 }53 }54 55 int main(){56 int t,i,j,k;57 scanf("%d",&t);58 while(t--){59 scanf("%d%d%d%d",&a,&b,&c,&maxt);60 for(i=0;i<a;i++)61 for(j=0;j<b;j++)62 for(k=0;k<c;k++)63 scanf("%d",&map);64 ans=999999;65 map[0][0][0]=1;//墙66 bfs(0,0,0);67 if(ans<=maxt)68 printf("%d\n",ans);69 else70 printf("-1\n");71 }72 return 0;73 }
页:
[1]