zoukankan      html  css  js  c++  java
  • hdu 5479 Scaena Felix (好坑的简单题)

    坑点较多,能过以下数据估计就可以了。

    样例:
    4
    ()
    ((((
    (())
    )))()(()))((()(((
    输出:
    1
    0
    2
    4

    首先,遍历一遍,计算“(”和“”的个数,取最小值记为ans。

    然后,判断有没有“)(”这种字串,有的话,最终的串要转换为“...)))))(((((...”这种形式。

    用两个数组:dp1从左到右计算“)”的个数前缀和;dp2从右往左计算“(”的个数后缀和。

    遍历一遍,ans=min( ans , dp1[i] + dp2[i+1])。(详见代码)

    /*
    
    Title :Scaena Felix
    Status:AC
    
    By wf,2015 9 27
    
    */
    #include <algorithm>
    #include <iostream>
    #include <cstring>
    #include <cstdio>
    #include <string>
    #include <stack>
    #include <cmath>
    #include <queue>
    #include <set>
    #include <map>
    #define FOR(i,s,t) for(int i = (s) ; i <= (t) ; ++i )
    
    typedef long long ll;
    using namespace std;
    
    const int inf=0x3f3f3f3f;
    const int maxn=1e3+5;
    
    int t;
    string s;
    int dp1[maxn],dp2[maxn];
    int main()
    {
    	cin>>t;
    	while(t--){
    		cin>>s;
    		memset(dp1,0,sizeof dp1);
    		memset(dp2,0,sizeof dp2);
    		int len=s.length();
    		bool ok=false;
    		int ans;
    		for(int i=0;i<len-1;++i){
    			if(s[i]==')' && s[i+1]=='(')ok=true;
    		}
    		int n1=0,n2=0;
    		for(int i=0;i<len;++i){
    			if(s[i]=='(')n1++;
    			else n2++;
    		}
    		ans=min(n1,n2);
    		if(ok){
    			for(int i=0;i<len;++i){
    				if(i==0)dp1[i]=0;
    				else dp1[i]=dp1[i-1];
    
    				if(s[i]=='(')dp1[i]++;
    			}
    			for(int i=len-1;i>=0;i--){
    				if(i==len-1)dp2[i]=0;
    				else dp2[i]=dp2[i+1];
    
    				if(s[i]==')')dp2[i]++;
    			}
    			for(int i=0;i<len-1;++i){
    				ans=min(ans,dp1[i]+dp2[i+1]);
    			}
    		}
    		printf("%d
    ",ans );
    	}
    	return 0;
    }
    

      

  • 相关阅读:
    Minio对象存储
    白话解说TCP/IP协议三次握手和四次挥手
    企业环境下MySQL5.5调优
    Mac下iTerm2配置lrzsz功能
    七牛云图床和Markdown使用
    SSIS: 把存储在数据库中的图片导出来
    关闭Outlook的时候使之最小化
    【转】CTE(公用表表达式)
    通过SSIS监控远程服务器磁盘空间并发送邮件报警
    在Windows Server 2008 R2 中架设 SMTP 服务器
  • 原文地址:https://www.cnblogs.com/bruce27/p/4843906.html
Copyright © 2011-2022 走看看