icpc:problems:luogup3056
目录
problems | |
---|---|
名称 | Clumsy Cows |
题目编号 | P3056 |
题目链接 | luogu.com.cn/… |
来源 | USACO |
算法分类 | 栈 |
难易程度 | 一般般 |
Clumsy Cows
想法
需要考虑:)(
与 ))
与 ( (
三种有问题的情况:
- 对于
)(
,将左括号变为右括号,右括号变为左括号。两次操作 - 对于
))
,将一半的右括号变为左括号即可。一次操作 - 对于
( (
,将一半的右括号变为左括号即可。一次操作
如何统一的处理这三种情况?
类似一个栈,维护左括号。当左括号增加时,加入栈。当遇到右括号时,将栈里的左括号删除。如果栈内没有左括号,说明遇到了第一种或第二种。该右括号一定需要修改。则操作数增加,并且将该右括号变为左括号,因为对于第二种情况,不需要处理再读入的符号。最后栈中留存的左括号中,一半是变化的右括号,一半是原本就有的左括号。一半的左括号需要变化(第一种情况)。答案增加栈数量的一半。
代码实现
/app/www/public/data/pages/icpc/problems/luogup3056.txt · 最后更改: 2024/01/30 11:31 由 温婕莺