今天在做比赛被虐了,于是做做CF,没想到又被虐了,第一题本来是有思路的,就是卡在一个地方了!
以下借鉴大神的思路:
一:
#include <iostream>
#include <cstdio>
#include <cstring>
#include <memory.h>
using namespace std;
#define clr(u) memset(u,0,sizeof(u))
int main()
{
int ans;
int i,j;
char s[11][11];
bool p[11][11];
int n,m;
scanf("%d%d",&n,&m);
ans=0;
clr(p);
for(i=0; i<n; i++)
{
scanf("%s",s[i]);
}
for(i=0; i<n; i++)
{
for(j=0; j<m; j++)
if(s[i][j]=='S')break;
if(j==m)
{
for(j=0; j<m; j++)
{
if(!p[i][j])
{
ans++;
p[i][j]=1;
}
}
}
}
for(i=0; i<m; i++)
{
for(j=0; j<n; j++)
if(s[j][i]=='S')break;
if(j==n)
{
for(j=0; j<n; j++)
{
if(!p[j][i])
{
ans++;
s[j][i]=1;
}
}
}
}
printf("%d\n",ans);
return 0;
}
二:
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int main()
{
int n,m;
int a[11],b[11];
char c;
int i,j;
scanf("%d%d",&n,&m);
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
for(i=0; i<n; i++)
{
for(j=0; j<m; j++)
{
cin>>c;
if(c=='S')
{
a[i]=1;
b[j]=1;
}
}
}
int sum=0;
int ans=0;
for(i=0; i<n; i++)
{
if(!a[i])
{
sum+=m;
ans++;
}
}
for(j=0; j<m; j++)
{
if(!b[j])
{
sum+=(n-ans);
}
}
printf("%d\n",sum);
return 0;
}