AC的char数组:
#include<iostream>
#include<cstring>
using namespace std;
int p[1010][1010];
char a[1080][1080];
int n,m,ans=0;
void wind(int x,int y)
{
p[x][y]=1;
if(a[x+1][y]=='u')
{
wind(x+1,y);
}
if(a[x-1][y]=='d')
{
wind(x-1,y);
}
if(a[x][y+1]=='l')
{
wind(x,y+1);
}
if(a[x][y-1]=='r')
{
wind(x,y-1);
}
}
int main()
{
cin>>n>>m;
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
cin>>a[i][j];
}
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
if(a[i][j]=='o')
{
wind(i,j);
}
}
}
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
ans+=p[i][j];
}
}
cout<<ans;
retirn 0;
}
不行的 string:
#include<iostream>
#include<cstring>
using namespace std;
int p[1010][1010];
string a[1080];
int n,m,ans=0;
void wind(int x,int y)
{
p[x][y]=1;
if(a[x+1][y]=='u')
{
wind(x+1,y);
}
if(a[x-1][y]=='d')
{
wind(x-1,y);
}
if(a[x][y+1]=='l')
{
wind(x,y+1);
}
if(a[x][y-1]=='r')
{
wind(x,y-1);
}
}
int main()
{
cin>>n>>m;
for(int i=0;i<n;i++)
{
getchar();
getline(cin,a[i]);
}
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
if(a[i][j]=='o')
{
wind(i,j);
}
}
}
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
ans+=p[i][j];
}
}
cout<<ans;
return 0;
}