CF1476D.Journey
普及+/提高
通过率:0%
时间限制:2.00s
内存限制:512MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
There are n+1 cities, numbered from 0 to n. n roads connect these cities, the i-th road connects cities i−1 and i (i∈[1,n]).
Each road has a direction. The directions are given by a string of n characters such that each character is either L or R. If the i-th character is L, it means that the i-th road initially goes from the city i to the city i−1; otherwise it goes from the city i−1 to the city i.
A traveler would like to visit as many cities of this country as possible. Initially, they will choose some city to start their journey from. Each day, the traveler must go from the city where they currently are to a neighboring city using one of the roads, and they can go along a road only if it is directed in the same direction they are going; i. e., if a road is directed from city i to the city i+1, it is possible to travel from i to i+1, but not from i+1 to i. After the traveler moves to a neighboring city, all roads change their directions to the opposite ones. If the traveler cannot go from their current city to a neighboring city, their journey ends; it is also possible to end the journey whenever the traveler wants to.
The goal of the traveler is to visit as many different cities as possible (they can visit a city multiple times, but only the first visit is counted). For each city i, calculate the maximum number of different cities the traveler can visit during exactly one journey if they start in the city i.
共有 n+1 座城市,编号从 0 到 n。有 n 条道路连接这些城市,其中第 i 条道路连接城市 i−1 和城市 i(i∈[1,n])。
每条道路具有一个方向。这些方向由一个长度为 n 的字符串给出,字符串中每个字符为 L 或 R。若第 i 个字符为 L,表示第 i 条道路初始方向为从城市 i 指向城市 i−1;否则(即为 R),其初始方向为从城市 i−1 指向城市 i。
一名旅行者希望尽可能多地访问该国的城市。初始时,旅行者将选择某座城市作为旅程起点。每天,旅行者必须从当前所在城市沿一条道路前往一个相邻城市;但仅当该道路的方向与旅行者行进方向一致时,才允许通行。例如:若某条道路方向为从城市 i 指向城市 i+1,则可从 i 走到 i+1,但不可反向从 i+1 走到 i。旅行者每次移动到相邻城市后,所有道路的方向均立即翻转(即 L 变为 R,R 变为 L)。若旅行者无法从当前城市沿任一道路前往相邻城市,则旅程结束;此外,旅行者也可在任意时刻主动终止旅程。
旅行者的目标是访问尽可能多的互不相同的城市(同一城市可被多次访问,但仅首次访问计入总数)。对每座城市 i,请计算:若旅行者恰好从城市 i 出发进行一次旅程,所能访问的不同城市的最大数量。
输入格式
The first line contains one integer t (1≤t≤104) — the number of test cases.
Each test case consists of two lines. The first line contains one integer n (1≤n≤3⋅105). The second line contains the string s consisting of exactly n characters, each character is either L or R.
It is guaranteed that the sum of n over all test cases does not exceed 3⋅105.
第一行包含一个整数 t(1≤t≤104)—— 测试用例的数量。
每个测试用例由两行组成。第一行包含一个整数 n(1≤n≤3⋅105)。第二行包含一个长度恰好为 n 的字符串 s,其中每个字符均为 L 或 R。
保证所有测试用例的 n 之和不超过 3⋅105。
输出格式
For each test case, print n+1 integers. The i-th integer should be equal to the maximum number of different cities the traveler can visit during one journey if this journey starts in the i-th city.
对于每个测试用例,输出 n+1 个整数。其中第 i 个整数应等于旅行者在一次旅程中最多能够访问的不同城市的数量,前提是该旅程从第 i 个城市出发。
输入输出样例
输入#1
2 6 LRRRLL 3 LRL
输出#1
1 3 2 3 1 3 2 1 4 1 4
输入解题思路,AI测评打分。不知道怎么写?