前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >3016: [Usaco2012 Nov]Clumsy Cows

3016: [Usaco2012 Nov]Clumsy Cows

作者头像
HansBug
发布2018-04-10 17:12:59
5410
发布2018-04-10 17:12:59
举报
文章被收录于专栏:HansBug's LabHansBug's Lab

3016: [Usaco2012 Nov]Clumsy Cows

Time Limit: 1 Sec  Memory Limit: 128 MB

Submit: 91  Solved: 69

[Submit][Status][Discuss]

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:

)(

())(

((())))

问题描述

给定长度为n的一个括号序列,每次修改可以修改一个位置的括号,若这个括号为’(‘,则修改为’)’,若这个括号为’)’,则修改为’(‘,问最少修改多少个使得原括号序列合法。

其中:

①     ()是合法的;

②     若A是合法的,则(A)是合法的;

③     若AB都是合法的,则AB是合法的。

Input

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

Output

       最少的修改次数。

Sample Input

())(

Sample Output

2 样例说明 修改为()(),其中红色部分表示修改的括号。 数据范围 100%的数据满足:1 <= n <= 100,000。

HINT

Source

Silver

题解:一个很神奇的模拟,感觉自己水水哒

代码语言:javascript
复制
 1 /**************************************************************
 2     Problem: 3016
 3     User: HansBug
 4     Language: Pascal
 5     Result: Accepted
 6     Time:72 ms
 7     Memory:220 kb
 8 ****************************************************************/
 9  
10 var ch:char;s,ans:longint;
11 begin
12      while not(eoln) do
13            begin
14                 read(ch);
15                 if ch='(' then inc(s) else
16                    begin
17                         dec(s);
18                         if s<0 then
19                            begin
20                                 inc(s,2);
21                                 inc(ans);
22                            end;
23                    end;
24            end;
25      ans:=ans+s div 2;
26      writeln(ans);
27 end.
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2015-04-05 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 3016: [Usaco2012 Nov]Clumsy Cows
  • Description
  • Input
  • Output
  • Sample Input
  • Sample Output
  • HINT
  • Source
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档