题意:n * m的格子,每次取标记为1的点与一个角的矩形区域涂色,问最少需要多少步将这n*m个格子涂完(3 ≤ n, m ≤ 50,4个角不会出现1)。
题目链接:http://codeforces.com/problemset/problem/359/A
——>>如果边上有1,那么只要2次,如果边上没1,要4次。
#include <cstdio>
using namespace std;
int main()
{
int n, m, c;
while(scanf("%d%d", &n, &m) == 2) {
bool ok = 0;
for(int i = 1; i <= n; i++)
for(int j = 1; j <= m; j++) {
scanf("%d", &c);
if((i == 1 || i == n || j == 1 || j == m) && c == 1) ok = 1;
}
ok ? puts("2") : puts("4");
}
return 0;
}
本文提供了一道 CodeForces 上的经典题目 359A 的解题思路与代码实现。该题目标是在一个 n*m 的矩阵中,通过特定规则将所有格子涂色,讨论了不同情况下所需的最小涂色步骤。
1276

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



