标签:des style io os ar for div art sp
3 #.# ##. ..# 3 ... ##. ..# 3 ... ### ..# 3 ... ##. ... 0
3 4 3 5
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<queue>
#define L(x) (x<<1)
#define R(x) (x<<1|1)
#define MID(x,y) ((x+y)>>1)
using namespace std;
#define N 105
char a[N][N];
int vis[N][N];
int n;
int ans;
struct stud{
int x,y,time;
int dir;
int num;
};
int step[8][3][2]={{0,-1,0,1,-1,0},//2,3
{0,-1,0,1,1,0}, //2,3
{-1,0,1,0,0,-1},//0,1
{-1,0,1,0,0,1}, //0,1
{1,-1,-1,1,-1,-1},//6,7
{1,-1,-1,1,1,1},//6,7
{-1,-1,1,1,1,-1},//4,5
{-1,-1,1,1,-1,1} //4,5
};
int stepp[8][2]={-1,0,1,0,0,-1,0,1,-1,-1,1,1,1,-1,-1,1};
int judge(int x,int y)
{
if(x>=0&&x<n&&y>=0&&y<n)
return 1;
return 0;
}
int seach(int x,int y)
{
if(y==2) return x;
if(x==0||x==1)
{
if(y==0)return 2;
return 3;
}
if(x==2||y==3)
{
if(y==0) return 0;
return 1;
}
if(x==4||x==5)
{
if(y==0) return 6;
return 7;
}
if(x==6||x==7)
{
if(y==0) return 4;
return 5;
}
}
void bfs(int x,int y,int ss)
{
int i,j,xx,yy;
struct stud cur,next;
memset(vis,0,sizeof(vis));
queue<stud>q;
cur.x=x;
cur.y=y;
cur.time=1;
cur.num=0;
cur.dir=ss;
vis[x][y]=1;
q.push(cur);
while(!q.empty())
{
cur=q.front();
q.pop();
if(cur.time>ans)
{
ans=cur.time;
}
int zz=cur.dir;
for(i=0;i<3;i++)
{
xx=cur.x+step[zz][i][0];
yy=cur.y+step[zz][i][1];
if(judge(xx,yy)&&a[xx][yy]=='.'&&!vis[xx][yy])
{
if(i!=2) next.num=cur.num+1;
else
next.num=cur.num;
if(next.num>=2) continue;
next.x=xx;
next.y=yy;
next.time=cur.time+1;
next.dir=seach(cur.dir,i);
vis[xx][yy]=next.time;
q.push(next);
}
}
}
}
int main()
{
int i,j;
while(scanf("%d",&n),n)
{
for(i=0;i<n;i++)
scanf("%s",a[i]);
ans=2;
for(i=0;i<n;i++)
{
if(a[i][0]=='.')
{
bfs(i,0,3);
bfs(i,0,5);
bfs(i,0,7);
}
if(a[i][n-1]=='.')
{
bfs(i,n-1,2);
bfs(i,n-1,4);
bfs(i,n-1,6);
}
}
for(i=0;i<n;i++)
{
if(a[0][i]=='.')
{
bfs(0,i,1);
bfs(0,i,6);
bfs(0,i,5);
}
if(a[n-1][i]=='.')
{
bfs(n-1,i,0);
bfs(n-1,i,4);
bfs(n-1,i,7);
}
}
printf("%d\n",ans);
}
return 0;
}
HDU 5024 Wang Xifeng's Little Plot (bfs)
标签:des style io os ar for div art sp
原文地址:http://blog.csdn.net/u014737310/article/details/39433217