链接

大意:给定字符串, 只含'(',')','?', 其中'?'可以替换为'('或')', 求有多少个子串可以的括号可以匹配 (不同子串之间独立)

记$s_($为'('个数, $s_)$为')'个数.

一个括号串匹配等价于长度为偶数, 且任意一个前缀中$s_( \ge s_)$,任意一个后缀中$s_) \ge s_($.

对前缀后缀分别暴力判断即可

  1. #include <iostream>
  2. #include <algorithm>
  3. #include <cstdio>
  4. #define PER(i,a,n) for(int i=n;i>=a;--i)
  5. #define REP(i,a,n) for(int i=a;i<=n;++i)
  6. using namespace std;
  7.  
  8. const int N = 5e3+10, INF = 0x3f3f3f3f;
  9. int n;
  10. int cnt[N][N], a[N];
  11. char s[N];
  12.  
  13. int main() {
  14. scanf("%s", s+1);
  15. n = strlen(s+1);
  16. REP(i,1,n) {
  17. int t = 0;
  18. REP(j,i,n) {
  19. t += s[j]==')';
  20. if (t>j-i+1-t) break;
  21. ++cnt[i][j];
  22. }
  23. }
  24. int ans = 0;
  25. PER(i,1,n) {
  26. int t = 0;
  27. PER(j,1,i) {
  28. t += s[j]=='(';
  29. if (t>i-j+1-t) break;
  30. if (++cnt[j][i]==2&&(i-j)%2) ++ans;
  31. }
  32. }
  33. printf("%d\n", ans);
  34. }

The Monster CodeForces - 917A (括号匹配)的更多相关文章

  1. Bracket Sequences Concatenation Problem CodeForces - 990C(括号匹配水题)

    明确一下  一个字符串有x左括号不匹配  和 另一个字符串有x个右括号不匹配  这俩是一定能够匹配的 脑子有点迷 emm... 所以统计就好了  统计x个左括号的有几个,x个右括号的有几个 然后 乘一 ...

  2. Codeforces 918 括号匹配 SGdp[i][j][k]

    A B C #include <bits/stdc++.h> #define PI acos(-1.0) #define mem(a,b) memset((a),b,sizeof(a)) ...

  3. Codeforces 918C The Monster(括号匹配+思维)

    题目链接:http://codeforces.com/contest/918/problem/C 题目大意:给你一串字符串,其中有'('.')'.'?'三种字符'?'可以当成'('或者')'来用,问该 ...

  4. Codeforces 5C Longest Regular Bracket Sequence(DP+括号匹配)

    题目链接:http://codeforces.com/problemset/problem/5/C 题目大意:给出一串字符串只有'('和')',求出符合括号匹配规则的最大字串长度及该长度的字串出现的次 ...

  5. C. Serval and Parenthesis Sequence 【括号匹配】 Codeforces Round #551 (Div. 2)

    冲鸭,去刷题:http://codeforces.com/contest/1153/problem/C C. Serval and Parenthesis Sequence time limit pe ...

  6. CodeForces 917A The Monster 贪心+思维

    As Will is stuck in the Upside Down, he can still communicate with his mom, Joyce, through the Chris ...

  7. CodeForces - 5C(思维+括号匹配)

    题意 https://vjudge.net/problem/CodeForces-5C 给出一个括号序列,求出最长合法子串和它的数量. 合法的定义:这个序列中左右括号匹配. 思路 这个题和普通的括号匹 ...

  8. 括号匹配 区间DP (经典)

    描述给你一个字符串,里面只包含"(",")","[","]"四种符号,请问你需要至少添加多少个括号才能使这些括号匹配起来 ...

  9. YTU 3003: 括号匹配(栈和队列)

    3003: 括号匹配(栈和队列) 时间限制: 1 Sec  内存限制: 128 MB 提交: 2  解决: 2 [提交][状态][讨论版] 题目描述 假设一个表达式中只允许包含三种括号:圆括号&quo ...

随机推荐

  1. java多线程----Semaphore信号量

    import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util ...

  2. python字符串、列表和文件对象总结

    1.字符串是字符序列.字符串文字可以用单引号或者双引号分隔. 2.可以用内置的序列操作来处理字符串和列表:连接(+).重复(*).索引([]),切片([:])和长度(len()).可以用for循环遍历 ...

  3. Python3基础 sys.path.append 增加模块的搜索路径

             Python : 3.7.0          OS : Ubuntu 18.04.1 LTS         IDE : PyCharm 2018.2.4       Conda ...

  4. P4396 [AHOI2013]作业

    题目链接 luogu4396 思路 唯有水题暖人心 咕了4天,今天跟着std对拍才做出来不得不说题解真的水的一批 先离散化一下 第一问差分询问,权值树状数组套一套就好了 \(nlog_{n}\) 第二 ...

  5. BZOJ5168: [HAOI2014]贴海报 线段树

    Description Bytetown城市要进行市长竞选,所有的选民可以畅所欲言地对竞选市长的候选人发表言论.为了统一管理,城市委 员 会为选民准备了一个张贴海报的electoral墙.张贴规则如下 ...

  6. CSS3屏幕密集媒体查询

    html { font-size: 50px; } body { font-size: 24px; } @media screen and (max-width: 359px) { html { fo ...

  7. 切换tab页时,tab页中的echart变形问题

    本文为博主原创,未经允许,不得转载: 在两个tab页中,分别展现了两个echart图表,同样的格式与写法,但只有在默认选中的tab页中的图表显示的是正常的, 但进入另一个tab页中时,图表则产生了变形 ...

  8. stm32 延时函数 delay_ms 范围

    void delay_us(u32 nus) { u32 temp; SysTick->LOAD=nus*fac_us; //时间加载 SysTick->VAL=0x00; //清空计数器 ...

  9. UVa 12325 宝箱

    https://vjudge.net/problem/UVA-12325 题意:有一个体积为N的箱子和两种数量无限的宝物.宝物1的体积为S1,价值为V1‘宝物2的体积为S2,价值为V2.计算出最多能装 ...

  10. SqlParameter 参数化模糊查询

    sql += " and a.f_fullName like N'%'+@fullName+'%'";