| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
Output Limit Exceed 半天了,郁闷了,请指教#include "stdio.h"
#include "memory.h"
const int M = 10000;
class queue
{
public:
int x[M];
int y[M];
int head,tail;
queue(){head=0;tail=0;}
void inqueue(int tx,int ty)
{
x[tail]=tx;
y[tail]=ty;
tail++;
}
void dequeue(int &tx,int &ty)
{
tx=x[head];
ty=y[head];
head++;
}
}q;
char a[90][110];
bool used[90][110];
int rel ,m ;
int w,h;
void solve(int tx, int ty)
{
int x, y;
m = 0 ;
q.head = 0 ;
q.tail = 0 ;
q.inqueue( tx, ty);
m ++ ;
used[tx][ty] = 1;
while(1)
{
if( q.tail > q.head )
q.dequeue( x, y);
else
{
rel = rel > m ? rel : m ;
break;
}
if( x >= 0 && x < h && y >=0 && y < w )
{
if( x-1 >= 0 && x-1 < h && y >=0 && y< w &&a[x-1][y] == '*'&& used[x-1][y]==0)
{
q.inqueue( x - 1, y);
m ++ ;
used[x-1][y] = 1;
}
if(x+1 >= 0 && x+1 < h && y >=0 && y < w && a[x+1][y] == '*'&& used[x+1][y]==0)
{
q.inqueue( x+1, y );
m ++ ;
used[x+1][y] = 1;
}
if( x >= 0 && x < h && y-1 >=0 && y-1 < w && a[x][y-1] == '*'&& used[x][y-1]==0)
{
q.inqueue( x , y - 1);
m ++ ;
used[x][y-1] = 1;
}
if( x >= 0 && x < h && y+1 >=0 && y +1< w && a[x][y+1] == '*'&& used[x][y+1]==0)
{
q.inqueue( x , y + 1);
m ++ ;
used[x][y+1] = 1;
}
}
}
}
int main()
{
while( scanf( "%d%d", &w,&h) != EOF )
{
int i,j;
for( i = 0 ; i < h ; i ++ )
{
scanf( "%s", a[i]);
memset( used[i] , 0 , 110 * sizeof(bool));
}
rel = 0 ;
for( i = 0 ; i < h ; i ++ )
for( j = 0 ; j < w ; j ++)
{
if( a[i][j] == '*' && used[i][j] == 0 )
solve(i,j);
}
printf( "%d\n", rel);
}
return 0;
}
/*
10 5
..*.....**
.**..*****
.*........
..****.***
..****.***
10 5
..........
..........
..........
..........
..........
10 5
**********
**********
**********
**********
**********
10 5
*.*.*.*.*.
.*.*.*.*.*
*.*.*.*.*.
.*.*.*.*.*
*.*.*.*.*.
*/
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator