题目解决:
如果一个点有草莓的话,就会限制掉那对应的一行与对应的列,当一个点所处的坐标(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; }
作者:ipqhjjybj 发表于2013-7-21 0:02:12 原文链接
阅读:168 评论:0 查看评论