L - One-Dimensional Maze

本文介绍了一个迷宫逃脱问题的算法解决方案。BaoBao被困在一维迷宫中,需要找到最少改变迷宫格子标记的方法来成功逃脱。通过计算从起点到两端出口的最短路径,算法确定了最小的更改次数。

滴答滴答题目链接 

BaoBao is trapped in a one-dimensional maze consisting of  grids arranged in a row! The grids are numbered from 1 to  from left to right, and the -th grid is marked with a character , where  is either 'L' or 'R'.

Starting from the -th grid, BaoBao will repeatedly take the following steps until he escapes the maze:

  • If BaoBao is in the 1st grid or the -th grid, then BaoBao is considered to arrive at the exit and thus can escape successfully.
  • Otherwise, let BaoBao be in the -th grid. If , BaoBao will move to the -th grid; If , Baobao will move to the -th grid.

Before taking the above steps, BaoBao can change the characters in some grids to help himself escape. Concretely speaking, for the -th grid, BaoBao can change  from 'L' to 'R', or from 'R' to 'L'.

But changing characters in grids is a tiring job. Your task is to help BaoBao calculate the minimum number of grids he has to change to escape the maze.

Input

There are multiple test cases. The first line of the input contains an integer , indicating the number of test cases. For each test case:

The first line contains two integers  and  (, ), indicating the number of grids in the maze, and the index of the starting grid.

The second line contains a string  () consisting of characters 'L' and 'R'. The -th character of  indicates the character in the -th grid.

It is guaranteed that the sum of  over all test cases will not exceed .

Output

For each test case output one line containing one integer, indicating the minimum number of grids BaoBao has to change to escape the maze.

Sample Input

3
3 2
LRL
10 4
RRRRRRRLLR
7 4
RLLRLLR

Sample Output

0
2
1

Hint

For the first sample test case, BaoBao doesn't have to change any character and can escape from the 3rd grid. So the answer is 0.

For the second sample test case, BaoBao can change  to 'R' and to 'R' and escape from the 10th grid. So the answer is 2.

For the third sample test case, BaoBao can change  to 'L' and escape from the 1st grid. So the answer is 1.

#include <iostream>
#include<string.h>
#include<stdio.h>
using namespace std;
const int N=1e5+10;
int main()
{
    int t;
    scanf("%d",&t);
    while(t--)
    {
        int n,m;
        scanf("%d%d",&n,&m);
        char s[N];
        scanf("%s",s);
        int l,r;
        l=r=0;
        for(int i=m; i<n-1; i++)
        {
            if(s[i]=='L')
                l++;
        }
        for(int i=1; i<m-1; i++)
        {
            if(s[i]=='R')
                r++;
        }
        if(s[m-1]=='L')
            l++;
        else r++;
        printf("%d\n",min(l,r));
    }

    return 0;
}

 

### High-speed and high-efficiency 3D shape measurement using Gray-coded light techniques Three-dimensional (3D) shape measurement has become an essential technique in various fields, including industrial inspection, robotics, and biomedical imaging. One of the most promising methods for achieving high-speed and high-efficiency 3D shape measurement is the use of Gray-coded light techniques. Gray-coded light techniques rely on structured light projection, where a series of binary patterns encoded with Gray codes are projected onto the surface of an object. The reflected or deformed patterns are then captured by a camera, and the 3D shape of the object is reconstructed based on the geometric relationship between the projector and the camera. Gray codes are particularly useful in this context because they minimize the risk of misinterpretation during the decoding process, ensuring that only one bit changes between consecutive codes. This property reduces the likelihood of errors in the phase unwrapping process, which is critical for accurate 3D reconstruction. The use of Gray-coded light enables high-speed acquisition due to the binary nature of the projected patterns. Binary patterns can be displayed at high frame rates using digital micromirror devices (DMDs), allowing for rapid data collection. Additionally, the efficiency of the method is enhanced by reducing the number of required patterns compared to other encoding strategies, such as sinusoidal phase-shifting methods. For instance, a complete 3D shape measurement using Gray-coded light may require only a fraction of the time needed for a single spectrum acquisition using conventional methods, especially when combined with fast decoding algorithms [^1]. Moreover, the integration of Gray-coded light techniques with high-resolution imaging systems can provide detailed morphological and surface information. This fusion of high-speed data acquisition and high-spatial resolution contributes significantly to the overall quality and fidelity of the 3D reconstruction. In some cases, the system may also benefit from a broader spectral range (UV-IR), further expanding its applicability across different materials and environments [^1]. To evaluate the performance of 3D shape measurement techniques, metrics such as Peak Signal-to-Noise Ratio (PSNR) are often employed. PSNR quantifies the difference between the original and reconstructed surfaces, serving as an indicator of the visual quality and accuracy of the measurement. Higher PSNR values generally correspond to better reconstruction quality, as demonstrated in comparative studies where certain techniques achieved significantly higher PSNR values due to improved contrast and suitability for specific types of surfaces [^2]. ### Code Example: Gray Code Generation for 3D Reconstruction The following Python code demonstrates how to generate Gray codes for a given number of bits, which can be used in structured light projection for 3D shape measurement: ```python def gray_code(n): """Generate Gray codes for n bits.""" if n <= 0: return [] if n == 1: return ['0', '1'] prev = gray_code(n - 1) return ['0' + code for code in prev] + ['1' + code for code in reversed(prev)] # Example usage n_bits = 4 gray_patterns = gray_code(n_bits) for pattern in gray_patterns: print(pattern) ``` This function recursively generates Gray codes, ensuring that each successive code differs by only one bit, which is crucial for minimizing errors in the decoding process. ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值