题目链接:Codeforces 330A Cakeminator
模拟,简单题。
#include <iostream>
#include <cstring>
using namespace std;
const int MAX_N = 10 + 2;
char _map[MAX_N][MAX_N];
bool row[MAX_N],column[MAX_N];
int r,c;
int solve()
{
int sum,vis;
sum = vis = 0;
for(int i = 0;i < r;i++)
{
for(int j = 0;j < c;j++)
{
if(row[i])
break;
if(j == c - 1)
{
sum += c;
vis++;
}
}
}
for(int j = 0;j < c;j++)
{
for(int i = 0;i < r;i++)
{
if(column[j])
break;
if(i == r - 1)
sum += (r - vis);
}
}
return sum;
}
int main()
{
while(cin >> r >> c)
{
memset(row,0,sizeof(row));
memset(column,0,sizeof(column));
for(int i = 0;i < r;i++)
{
for(int j = 0;j < c;j++)
{
cin >> _map[i][j];
if(_map[i][j] == 'S')
row[i] = column[j] = 1;
}
}
cout << solve() << endl;
}
return 0;
}
本文介绍了一个简单的Codeforces比赛中的算法问题,通过模拟的方法解决Cakeminator问题。包括代码实现、关键思路和时间复杂度分析。
163

被折叠的 条评论
为什么被折叠?



