全TLE代码:
#include <bits/stdc++.h>]
using namespace std;
int c[4]={-1,0,1,0},d[4]={0,1,0,-1},mp[100][100],s,n,m;
char ch[100];
void xy(int p,int q)
{
int x,y,u,v,k,t[1000][3],i;
s++;
mp[p][q]=0;
u=0;
v=1;
t[1][1]=p;
t[1][2]=q;
do
{
u++;
for (i=0;i<4;k++)
{
x=t[u][1]+c[i];
y=t[u][2]+d[i];
if ((x>=0) && (x<n) && (y>=0) && (y<n) && (mp[x][y]))
{
v++;
t[v][1]=x;
t[v][2]=y;
mp[x][y]=0;
}
}
}while (u<v);
}
int main()
{
scanf("%d%d\n",&n,&m);
for (int i=0;i<n;i++)
{
for (int j=0;j<m;j++)
{
mp[i][j]=1;
}
}
for (int i=0;i<n;i++)
{
gets(ch);
for (int j=0;j<m;j++)
{
if (ch[j]=='0') mp[i][j]=0;
}
}
for (int i=0;i<n;i++)
{
for (int j=0;j<m;j++)
{
if (mp[i][j]) xy(i,j);
}
}
printf("%d\n",s);
return 0;
}