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;
}