2017CCPC秦皇岛 L题One-Dimensional Maze&&ZOJ3992【模拟】

链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3992

题意:

走迷宫,一个一维字符串迷宫,由'L'、'R'组成,分别代表向左一步、向右一步,若遇见”死胡同“,可将当前字符替换,比如'L'换成'R',‘R’换成‘L’,从始发地出发,求最少替换多少个字符就可以走出迷宫。

思路:

从起点分别向左向右简单模拟即可。

代码:

#include<iostream>
#include<cstdio>
using namespace std;

int t,n,m;
int L(string s)
{
    int sum=0;
    for(int i=m-1;i>0;i--)
        if(s[i]=='R')
            sum++;
    return sum;
}

int R(string s)
{
    int sum=0;
    for(int i=m-1;i<n-1;i++)
        if(s[i]=='L')
            sum++;
    return sum;
}

int main()
{
    string s;
    cin>>t;
    while(t--)
    {
        cin>>n>>m>>s;
        printf("%d
",R(s)>L(s)?L(s):R(s));
    }
    return 0;
}
原文地址:https://www.cnblogs.com/darklights/p/7768310.html