zoukankan      html  css  js  c++  java
  • BZOJ3016 [Usaco2012 Nov]Clumsy Cows

    蒟蒻还是刷刷水。。。(不要问我这么沙茶的题为何要写题解)

    Orz 海之树:"考虑每一个右括号必须要有一个在它之前的左括号相配对,所以用sum记录到当前位置位置还没有配对的左括号的数量。

    如果为负数这说明必须有一个右括号要变为左括号,即ans++且sum+=2(因为少了一个右括号的同时多了一个左括号)。

    最后加上剩余的未配对的左括号的数量的二分之一即为答案。"

     1 /**************************************************************
     2     Problem: 3016
     3     User: rausen
     4     Language: C++
     5     Result: Accepted
     6     Time:36 ms
     7     Memory:804 kb
     8 ****************************************************************/
     9  
    10 #include <cstdio>
    11  
    12 using namespace std;
    13  
    14 int ans, sum;
    15  
    16 int main() {
    17     char ch = getchar();
    18     while (ch == '(' || ch == ')') {
    19         if (ch == '(') ++sum;
    20         else --sum;
    21         if (sum < 0) ++ans, sum += 2;
    22         ch = getchar();
    23     }
    24     ans += sum >> 1;
    25     printf("%d
    ", ans);
    26     return 0;
    27 }
    View Code
    By Xs酱~ 转载请说明 博客地址:http://www.cnblogs.com/rausen
  • 相关阅读:
    hdu 3786 寻找直系亲属
    about the plan
    2013 ACM/ICPC Asia Regional Online —— Warmup1 1005 Balls Rearrangement
    poj 1833 给poj跪了 字典排序
    20170630总结
    20170701总结
    20170628总结
    20170629总结
    20170626总结
    20170627总结
  • 原文地址:https://www.cnblogs.com/rausen/p/4135655.html
Copyright © 2011-2022 走看看