社区讨论
找原题
学术版参与者 3已保存回复 5
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 5 条
- 当前快照
- 1 份
- 快照标识符
- @lo3ci9d0
- 此快照首次捕获于
- 2023/10/24 04:23 2 年前
- 此快照最后确认于
- 2023/10/24 04:23 2 年前
题面
CPP【描述】
小z最近非常沉迷于排序,他现在设想这样一个场景:n个人站成一个水平线上,每个人都可以选择往右或者往左看,每个人都将看到所有他左边人或者他右边的人,那么这n个人如果把每个人能看到人数加起来就会得到一个值G。
例如,一个字符串:LRRLL,它的值G即为0+3+2+3+4=12;其中L表示这个人往左看,R表示这个人往右看。
现在给你一个初始的字符串,用来表示每个人往左看或者往右看,然后,对于每个k(k取值为1 到 n),你可以选择最多k个人改变他们看的方向,但是小z希望这n在选择k个人改变方向后,能得到最大值G。
【输入描述】
第一行包含一个整数t (1≤t≤100),表示测试样例的组数。
对于每组测试数据:
第一行包含一个整数n (1≤n≤2*10^5),表示字符串的长度。第二行包含一个字符串,长度为n,只包含L和R,代表这个人往左看还是往右看。
题目保证所有n的总和不会超过2*10^5
【输出描述】
对于每组数据,输出n个数,分别表示你选择k个人改变看的方向后能够取得的最大值G。(其中k取值范围为 1 到 n)。
样例(应该是原题的)
CPP【输入样例】
6
3
LLR
5
LRRLL
1
L
12
LRRRLLLRLLRL
10
LLLLLRRRRR
9
LRLRLRLRL
【输出样例】
3 5 5
16 16 16 16 16
0
86 95 98 101 102 102 102 102 102 102 102 102
29 38 45 52 57 62 65 68 69 70
44 50 54 56 56 56 56 56 56
可能是 CF 的某个 div2/div3 的 A/B/C
回复
共 5 条回复,欢迎继续交流。
正在加载回复...