题解 CF1391B 【Fix You】

smallfang

2020-08-10 13:09:16

题解

这道题、我们发现、所有传送带只能向下传送或者向右传送,所以不会出现环。因为环需要上下同时出现或者左右同时出现。这证明、所有点都会走到最后一行或者最后一列。那么最后一列需要让所有步骤变为才能到达重点、最后一行需要所有步骤变为,才能到达终点。那就统计最后一列右的个数、最后一行下的个数即可。

Code

#include <iostream>

using namespace std;

const int MAXN = 1e5;
const int INF = 1e9;

int n, m;

int main()
{
    int t;
    scanf("%d", &t);
    while (t -- )
    {
        scanf("%d%d", &n, &m);
        char x;
        int c = 0;
        for (int i = 1; i <= n; i ++ )
        {
            for (int j = 1; j <= m; j ++ )
            {
                cin >> x;
                if (i == n && j == m)
                {
                    continue;
                }
                if (i == n)
                {
                    c += (x != 'R');
                }
                if (j == m)
                {
                    c += (x != 'D');
                }
            }
        }
        printf("%d\n", c);
    }
    return 0;
}