#jlabel. 2026暑假CSP-J模拟赛03-T2 程老师的试剂标签
2026暑假CSP-J模拟赛03-T2 程老师的试剂标签
时间限制:1000ms 内存限制:512MB
题目描述
程老师的试剂柜里整齐地排列着许多瓶试剂。每一瓶试剂都不是一步配成的,而是要经过好几道工艺:有的中间品要先浓缩,有的要强浓缩,有的则要加水稀释。为了记录每瓶试剂的配制过程,程老师在瓶身上贴了一张标签,标签上印着一串由三种成对标记组成的符号串。
三种成对标记分别是圆括号 ( )、方括号 [ ] 和花括号 { },各自对应一道工艺。一张标签上的串一定是合法的:每一个左标记都有唯一与之配对的右标记,成对的两个标记之间所夹的内容本身也是一张合法标签,不同种类的标记不会交叉嵌套。
程老师用"含量"来衡量一瓶试剂的有效成分总量。标签上的每一种工艺标记都对应一条含量的计算规则:
-
浓缩工艺:一对圆括号表示把内部的中间品合并后进行浓缩。先算出这对圆括号内部各段含量之和,再把这个总和翻为 2 倍,就是这对圆括号所代表的含量。一对内部为空的圆括号
()表示一份标准浓缩液,含量为 2。 -
强浓缩工艺:一对方括号的作用与浓缩类似,但设备更强,这对括号的含量为内部各段含量之和的 3 倍。一对内部为空的方括号
[]表示一份标准强浓缩液,含量为 3。 -
稀释工艺:一对花括号表示加水稀释,这对括号的含量只有内部各段含量之和的一半。由于成品一律按整份计量,减半之后不足一份的零头会被直接舍去。一对内部为空的花括号
{}表示一份标准稀释液,含量为 1。
如果标签上有多段内容依次并排书写、彼此互不嵌套,那么这张标签的总含量就等于各段含量分别算出之后再相加。整瓶试剂的含量就是整张标签按上述规则算出的数值。
现在程老师拿出一张标签,他想知道这瓶试剂的总含量是多少。
输入格式
一行一个字符串 ,仅由 ( ) [ ] { } 六种字符组成,保证是一张合法标签。
输出格式
一行一个整数,表示这张标签对应的总含量。
数据范围
- 对于 100% 的数据,,嵌套深度不超过 20,答案不超过 。
| 测试点 | 特殊性质 | |
|---|---|---|
| 1~3 | 20 | 无 |
| 4~7 | B | |
| 8~10 | A | |
| 11~14 | 无 | |
| 15~20 |
特殊性质 A:串中不含花括号 { }。
特殊性质 B:串中只含圆括号 ( ) 一种标记。
样例
样例 1
输入:
(){[][][]}
输出:
6
样例 2
输入:
{[()[]]}
输出:
7
样例 3
输入:
[{[]}{()[]}]
输出:
9
样例解释
样例 1:() 的含量为 2。[][][] 三段并列,含量为 ;花括号把它稀释减半、舍去零头,得到 4。总含量为 。
样例 3:{[]} 内部为 3,稀释后舍去零头为 1;{()[]} 内部为 ,稀释后舍去零头为 2。两段并列之和为 ,外层方括号强浓缩为 。
- ID
- 692
- 类型
- 传统题
- Time Limit
- 1000ms
- Memory Limit
- 512MiB
- 上传者
相关
在下列比赛中: