Parenthesis
来源:互联网 发布:电脑文件数据恢复 编辑:程序博客网 时间:2024/05/17 08:22
2016湖南省第G题 题目链接
在知乎上看了叉姐的题解后还是没懂说是贪心法 后来明白只有交换前者‘(’和后者‘)’ 因为这样的交换会导致前面的左括号‘(’减少 而要使得交换后括号匹配就必须使得交换区间[a,b)内的左括号数量减去右括号数量大于2 (l[i] - r[i] <= 1 小于等于1交换后就不匹配)
//在中南大学评测机上用cin cout会超时 菜鸡再也不用了
#include <iostream>#include <algorithm>#include <cstring>#include <cstdio>using namespace std;const int INF = 1e5 + 5;int n, q, be, en;int l[INF], r[INF]; //[1~n]每个前缀的左右括号的数量char ch[INF];bool solve(int a, int b){ bool judge = true; if (ch[a] == ch[b]) return true; else if (ch[a] == ')') return true; for (int i = a; i < b; i++) { if (l[i] - r[i] <= 1) judge = false; } return judge;}int main(){ while (~scanf("%d%d", &n, &q)) { scanf("%s", ch + 1); l[0] = r[0] = 0; for (int i = 1; i <= n; i++){ l[i] = l[i - 1]; r[i] = r[i - 1]; if (ch[i] == '(') l[i]++; else r[i]++; } int a, b; while (q--) { scanf("%d%d", &a, &b); if (a> b)swap(a, b); if (solve(a, b)) puts("Yes"); else puts("No"); } } return 0; //system("pause");}
阅读全文
0 0
- Parenthesis
- Parenthesis
- Parenthesis
- hoj12008 Parenthesis
- unbalanced parenthesis
- Generate parenthesis
- csu Parenthesis
- Parenthesis CSU
- 【leetcode】 generate parenthesis !!
- sre_constants.error: unbalanced parenthesis
- TOJ 3407 Parenthesis
- Leetcode: Generate Parenthesis
- [Leetcode] Generate Parenthesis
- Longest Valid Parenthesis
- leetcode Generate Parenthesis
- leetcode Generate Parenthesis
- LeetCode - Valid Parenthesis
- LeetCode:Generating Parenthesis
- ML-K-均值聚类算法
- Android反调试技巧总结
- Storm是如何成为Apache顶级项目的
- xib学习周计划:1——xib文件的基本认识
- 做技术的你是如何平衡工作与生活的?
- Parenthesis
- Java适配器模式
- Maven SLF4J: Class path contains multiple SLF4J bindings
- maven install Failed to execute goal org.apache.maven.plugins:maven-war-plugin:2.1.1:war (default-wa
- 属性动画中Interpolator原理
- Gradle相关
- 1
- [HDU]3652 B-number 数位dp
- mysql常用语句汇总