Scaena Felix
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 582 Accepted Submission(s): 246
Problem Description
Given a parentheses sequence consist of '(' and ')', a modify can filp a parentheses, changing '(' to ')' or ')' to '('.
If we want every not empty <b>substring</b> of this parentheses sequence not to be "paren-matching", how many times at least to modify this parentheses sequence?
For example, "()","(())","()()" are "paren-matching" strings, but "((", ")(", "((()" are not.
If we want every not empty <b>substring</b> of this parentheses sequence not to be "paren-matching", how many times at least to modify this parentheses sequence?
For example, "()","(())","()()" are "paren-matching" strings, but "((", ")(", "((()" are not.
Input
The first line of the input is a integer
T
, meaning that there are
T
test cases.
Every test cases contains a parentheses sequence S only consists of '(' and ')'.
1≤|S|≤1,000 .
Every test cases contains a parentheses sequence S only consists of '(' and ')'.
1≤|S|≤1,000 .
Output
For every test case output the least number of modification.
Sample Input
3 () (((( (())
Sample Output
1 0 2
Source
出题人:题目要求每一个子串都不是括号匹配串,实际上只要使得括号
匹配的单元“()”串不是该串的子串即可。所以最终串肯定是连续数个')'
以及连续数个'(',统计出其中代价最小的即可。
当是看到这个题目 。。。。 蒙了
不知道怎么搞得 不对啊 div2 的第一题应该是简单题啊
最终 还是 别人提示 变成 连续数个')'以及连续数个'('。。。。。。。
#include
#include
#include
using namespace std;
char a[1001];
int b[1001];
int main()
{
int T;
scanf("%d",&T);
while(T--)
{
scanf("%s",a);
int i,len=strlen(a);
int temp=0,ans=0,cnt=0,mixn=1001;
for(i=0; i
cnt?cnt:ans;
for(i=0; i
#include
#include
#include
using namespace std;
char a[1001];
int b[1001];
int main()
{
int T;
scanf("%d",&T);
while(T--)
{
scanf("%s",a);
int i,len=strlen(a);
int temp=0,ans=0,cnt=0,mixn=1001;
for(i=0; i
cnt?cnt:ans;
for(i=0; i