我的一直90%,调了50分钟一直90%。。。块疯了都。。。
#include<iostream>
#include<vector>
using namespace std;
void spread(vector<vector<int> > & island , int y , int x) {
// cout<<x<<" "<<y;
island[y][x] = 2;
if(y-1>=0 && 1 == island[y-1][x]) spread(island, y-1 , x);
if(y+1<island.size() && 1 == island[y+1][x]) spread(island, y+1 , x);
if(x-1>=0 && 1 == island[y][x-1]) spread(island, y , x-1);
if(x+1<island[0].size() && 1 == island[y][x+1]) spread(island, y , x+1);
}
int main() {
int n , m;
cin>>n>>m;
vector<vector<int> > island(n, vector<int>(m));
char temp;
for(int i = 0 ; i < n ; i++) {
for(int j = 0 ; j < m ; j++) {
cin>>temp;
if('0' == temp) island[i][j] = 0;
else if('1' == temp) island[i][j] = 1;
else{
cout<<0<<endl;
return 0;
}
}
}
int result = 0;
for(int i = 0 ; i < n ; i++) {
for(int j = 0 ; j < m ; j++) {
if(1 != island[i][j])continue;
result++;
spread(island,i,j);
}
}
cout<<result<<endl;
return 0;
}