hdoj5319

来源:互联网 发布:表情包文化 知乎 编辑:程序博客网 时间:2024/04/29 10:29

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5319

题意:有个矩形格子,要给他上色。其中,红色只能沿着'\'这个方向涂,蓝色只能沿着‘/’这个方向涂。红蓝相交的地方是绿色。求涂出所给图案最少需要几次。

解题思路:只要斜线的上一个和这个是不是一种颜色就可以了。

#include <cstdio>#include <algorithm>#include <cstring>#include <cmath>using namespace std;const int MAXN = 55;const int INF = 0x3f3f3f3f;char s[MAXN][MAXN];bool vis[MAXN][MAXN];int n, m;int main()    {    int T;    scanf ("%d", &T);    while (T--) {        scanf ("%d", &n);        for (int i=1; i<=n; ++i)    scanf ("%s", s[i] + 1);        memset (vis, false, sizeof (vis));  m = strlen (s[1] + 1);        int ans = 0;        for (int i=1; i<=n; ++i)    {            for (int j=1; j<=m; ++j)  {                if (s[i][j] == 'R' || s[i][j] == 'G')   {                    if (!(s[i-1][j-1] == 'R' || s[i-1][j-1] == 'G'))    ans++;                }            }        }        for (int i=1; i<=n; ++i)    {            for (int j=1; j<=m; ++j)    {                if (s[i][j] == 'B' || s[i][j] == 'G')   {                    if (!(s[i-1][j+1] == 'B' || s[i-1][j+1] == 'G'))    ans++;                }            }        }        printf ("%d\n", ans);    }    return 0;}


0 0
原创粉丝点击