题目解决:
如果一个点有草莓的话,就会限制掉那对应的一行与对应的列,当一个点所处的坐标(x,y)行x,列y都被限制时。就是此点不能去除,不计算该点。所以解法出来了。
代码:
/*
* @author ipqhjjybj
* @date 20130720
*
*/
#include <cstdio>
#include <cstdlib>
#include <algorithm>
#include <iostream>
#include <cstring>
using namespace std;
#define ll long long
#define max(a,b) ((a)>(b)?(a):(b))
#define min(a,b) ((a)<(b)?(a):(b))
#define clr(x,k) memset(x,k,sizeof(x))
char s[100][100];
int heng[100][100];
int shu[100][100];
int main(){
//freopen("330A.in","r",stdin);
int n,m;
clr(heng,0);
clr(shu,0);
scanf("%d %d",&n,&m);
getchar();
for(int i = 0;i < n;i++)
gets(s[i]);
for(int i = 0;i < n;i++){
for(int j = 0;j < m;j++){
if(s[i][j]=='S'){
for(int ii = 0;ii<m;ii++){
heng[i][ii]=1;
}
for(int jj = 0;jj<n;jj++){
shu[jj][j]=1;
}
}
}
}
int ans = 0;
for(int i = 0;i < n;i++)
for(int j = 0;j < m;j++){
if(!heng[i][j]||!shu[i][j]){
ans++;
}
}
printf("%d\n",ans);
return 0;
}