3016: [Usaco2012 Nov]Clumsy Cows

Description

Bessie the cow is trying to type a balanced string of parentheses into her new laptop, but she is sufficiently clumsy (due to her large hooves) that she keeps mis-typing characters. Please help her by computing the minimum number of characters in the string that one must reverse (e.g., changing a left parenthesis to a right parenthesis, or vice versa) so that the string would become balanced. There are several ways to define what it means for a string of parentheses to be "balanced". Perhaps the simplest definition is that there must be the same total number of ('s and )'s, and for any prefix of the string, there must be at least as many ('s as )'s. For example, the following strings are all balanced:
()
(())
()(()())
while these are not:
)(
())(
((())))

()是合法的；
A是合法的，则(A)是合法的；
AB都是合法的，则AB是合法的。

一个长度为n个括号序列。

())(

Sample Output

2

100%的数据满足：1 <= n <= 100,000。

Source

Silver

这题直接乱搞。。我们知道，对于每个合法的括号序列，这个序列的任意一个位置的之前的所有的左括号的数目都是要大于等于右括号的数目的。所以我们利用这条性质，可以用一个计数器来模拟一个类似单调栈的东西，每次进来一个右括号，都用它来抵消左括号，当计数器等于0，即相当于所有的左括号都匹配了一个右括号的时候，又来了一个右括号，那么这时就需要改变括号。最后的答案要再加上多出来的左括号的数目的一半。

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std;
const int MAXN=10001;
int main(int argc, char *argv[])
{
int d=0,n,i;
int ans=0;
char x;
while(cin>>x)
{
if(x=='(') d++;
else if(x==')'&&d>=1) d--;
else if(x==')'&&d==0) ans++,d++;
}
ans+=(d+1)/2;
printf("%d\n",ans);
return 0;
}


• 本文已收录于以下专栏：

bzoj3016 [Usaco2012 Nov]Clumsy Cows

Description Bessie the cow is trying to type a balanced string of parentheses into her new laptop...
• zhb1997
• 2014年09月26日 22:50
• 492

3016: [Usaco2012 Nov]Clumsy Cows

3016: [Usaco2012 Nov]Clumsy Cows Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 151  Solved: 119 ...
• CRZbulabula
• 2016年08月10日 08:12
• 117

bzoj 3016: [Usaco2012 Nov]Clumsy Cows 栈

→题目链接← 说是栈，其实就用一个变量记录下就好，我用的sum 碰到(就++，碰到)就-- 当sum为负时一定是不合法的，这时候一定要改一下，所以ans++ 然后令sum等于1，因为把...
• everlasting_20141622
• 2017年08月14日 09:24
• 108

【BZOJ】3016: [Usaco2012 Nov]Clumsy Cows

Description Bessie the cow is trying to type a balanced string of parentheses into her new laptop...
• wujiayi001211
• 2016年08月28日 16:14
• 133

BZOJ 3016: [Usaco2012 Nov]Clumsy Cows

• wry0112
• 2017年07月09日 20:01
• 75

bzoj3016: [Usaco2012 Nov]Clumsy Cows

• mengbi_er
• 2017年07月05日 19:24
• 110

【USACO 2008 Nov Gold】 1.Mixed Up Cows 状压DP、

• Vmurder
• 2015年01月02日 11:46
• 1329

bzoj1752 [Usaco2005 qua]Til the Cows Come Home

Description Bessie is out in the field and wants to get back to the barn to get as much sleep as ...
• zhb1997
• 2014年07月12日 23:58
• 319

USACO 2008 Nov Gold 1.Mixed Up Cows

• ww140142
• 2015年04月08日 20:16
• 738

BZOJ 1615: [Usaco2008 Mar]The Loathesome Hay Baler麻烦的干草打包机 bfs

• ALPS233
• 2016年05月17日 14:04
• 573

举报原因： 您举报文章：3016: [Usaco2012 Nov]Clumsy Cows 色情 政治 抄袭 广告 招聘 骂人 其他 (最多只允许输入30个字)