题意:给定n个只有左右括号的序列,要求将它们重新排序使得匹配的括号对数最大。

n<=1e5

s[i]<=1e5

sum s[i]<=5e6

思路:

先把每个串内部的匹配数量减去,剩下的就是不匹配的左右括号数量

对于左括号数量大于右括号的串,按右括号数量从小到大排序

对于右括号数量大于左括号的串,按左括号数量从大到小排序

 #include<cstdio>
#include<cstring>
#include<string>
#include<cmath>
#include<iostream>
#include<algorithm>
#include<map>
#include<set>
#include<queue>
#include<vector>
using namespace std;
typedef long long ll;
typedef unsigned int uint;
typedef unsigned long long ull;
typedef pair<int,int> PII;
typedef vector<int> VI;
#define fi first
#define se second
#define MP make_pair int read()
{
int v=, f=;
char c=getchar();
while (c<||<c) {if(c=='-') f=-; c=getchar();}
while (<=c&&c<=) v=(v<<)+v+v+c-, c=getchar();
return v*f;
} const int N=;
int a[N],b[N],n,ans;
char ch[N];
PII A[N],B[N],C[N]; bool cmp1(const PII &a,const PII &b)
{
return a.fi<b.fi;
} bool cmp2(const PII &a,const PII &b)
{
return a.se>b.se;
} int main()
{ int cas=read();
while(cas--)
{
n=read();
int ans=;
for(int i=;i<=n;i++)
{
scanf("%s",ch+);
a[i]=b[i]=;
int now=;
for(int j=;ch[j];j++)
if(ch[j]==')')
{
if(now) now--,ans++;
else a[i]++;
}
else now++;
b[i]=now;
for(int j=;ch[j];j++) ch[j]=;
}
for(int i=;i<=n;i++) A[i]=MP(a[i],b[i]);
int len1=,len2=;
for(int i=;i<=n;i++)
if(a[i]<b[i]) B[++len1]=A[i];
else C[++len2]=A[i];
sort(B+,B+len1+,cmp1);
sort(C+,C+len2+,cmp2);
int now=;
for(int i=;i<=len1;i++)
{
ans+=min(now,B[i].fi);
now-=min(now,B[i].fi);
now+=B[i].se;
}
for(int i=;i<=len2;i++)
{
ans+=min(now,C[i].fi);
now-=min(now,C[i].fi);
now+=C[i].se;
}
printf("%d\n",ans*);
}
return ;
}

【HDOJ6299】Balanced Sequence(贪心)的更多相关文章

  1. hdu6299 Balanced Sequence 贪心

    题目传送门 题目大意:给出n个字符串,定义了平衡字符串,问这些字符串组合之后,最长的平衡字符子序列的长度. 思路: 首先肯定要把所有字符串先处理成全是不合法的,记录右括号的数量为a,左括号的数量为b, ...

  2. HDU 6299 Balanced Sequence(贪心)

    题目:给出N个只有左右括号字符串 ,这N个字符串的排列顺序是任意的 , 问按最优的排序后 , 得到最多匹配的括号个数 分析: 我们很容易的想到 字符串)()()(( , 这样的字符串可以精简为)(( ...

  3. HDU6299 Balanced Sequence (多校第一场1002) (贪心)

    Balanced Sequence Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others ...

  4. hdu 6299 Balanced Sequence (贪心)

    Balanced Sequence Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others ...

  5. hdu多校1002 Balanced Sequence

    Balanced Sequence Time Limit: / MS (Java/Others) Memory Limit: / K (Java/Others) Total Submission(s) ...

  6. HDU5014Number Sequence(贪心)

    HDU5014Number Sequence(贪心) 题目链接 题目大意: 给出n,然后给出一个数字串,长度为n + 1, 范围在[0, n - 1].然后要求你找出另外一个序列B,满足上述的要求,而 ...

  7. HDU 多校对抗赛 B Balanced Sequence

    Balanced Sequence Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others ...

  8. 【题解】Cut the Sequence(贪心区间覆盖)

    [题解]Cut the Sequence(贪心区间覆盖) POJ - 3017 题意: 给定一大堆线段,问用这些线段覆盖一个连续区间1-x的最小使用线段的数量. 题解 考虑一个这样的贪心: 先按照左端 ...

  9. hdu 6299 Balanced Sequence (括号序列,贪心)

    大意: 记$f(t)$表示字符串$t$的最长括号匹配子序列, 给定n个括号序列, 求它们重排后的最大f(t). 首先可以注意到一个括号序列中已经匹配的可以直接消去, 一定不会影响最优解. 那么这样最终 ...

随机推荐

  1. AJPFX关于Class类和Class类实例

    Java程序中的各个Java类属于同一类事物,描述这类事物的Java类就是Class类.对比提问:众多的人用一个什么类表示?众多的Java类用一个什么类表示?人  PersonJava类  Cla ...

  2. leetcode315 Count of Smaller Numbers After Self

    思路: bit + 离散化. 实现: #include <bits/stdc++.h> using namespace std; class Solution { public: int ...

  3. (4)《Head First HTML与CSS》学习笔记---文本的CSS规则和盒模型;div与span;<a>元素的链接色;伪类

    1.每个font-family包含一组共同特征的字体.共五个字体系列: sans-serif----这个系列包括了没有衬线的字体,与serif相比,通常认为这个系列更容易在计算机上识读. serif- ...

  4. EventBus 报“Subscriber class already registered to event class”错误

    这句子的话意思也很容易理解,“接收者类已经被注册为事件类了”. 之前我是这么写: 事件注册是写在onStart()里面的 @Override protected void onStart() { su ...

  5. android studio 导入jar包

    或者还可以这么导入: 1.首先先去下载需要的jar包2.将jar包复制到Project下的app–>libs目录下(没有libs目录就新建一个)如下图所示位置: 3.点击工具栏中的Project ...

  6. SqlSessionFactory

    源码: public interface SqlSessionFactory { SqlSession openSession(); SqlSession openSession(boolean va ...

  7. 第17周翻译:SQL Server中的事务日志管理的阶梯:第5级:在完全恢复模式下管理日志

    来源:http://www.sqlservercentral.com/articles/Stairway+Series/73785/ 作者:Tony Davis, 2012/01/27 翻译:刘琼滨. ...

  8. react基础语法(二)常用语法如:样式 ,自定义属性,常用表达式

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  9. SEO 第一章

    SEO  第一章 第一章:SEO基础知识 第二章:搜索引擎基础 第三章:关键词分析 第四章:TDK优化 第五章:网站的URL优化 第六章:网站的内链优化 第七章:代码优化 第八章:网站的内容优化 第九 ...

  10. AWS Data Lake Service Stack