51NOD 1791 合法括号子段
来源:互联网 发布:在淘宝上买摩托车 编辑:程序博客网 时间:2024/06/05 07:27
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1791
用一个栈来维护,碰到左括号入栈,碰到右括号出栈,
出栈规则:栈顶不为左括号或者已出栈的右括号大于左括号。
循环完了再把栈里剩余的处理一遍。
#include<bits/stdc++.h>using namespace std;string s;long long fc(long long k){ return k*(k+1)/2;}int main(){ long long t; cin>>t; while(t--) { string s; cin>>s; stack<char> st; long long l,r; l=r=0; long long ans=0; for(long long i=0; i<s.size(); i++) { if(s[i]=='(') st.push('('); else { long long cnt=0; long long sum=0; while(!st.empty()&&(st.top()!='('||cnt>0)) { // cout<<st.top()<<endl; if(st.top()==')') cnt++,sum++; else cnt--; st.pop(); } if(!st.empty()) st.push(')'); ans+=fc(sum); } } l=r=0; while(!st.empty()) { if(st.top()==')') r++; else l++; if(l>r) { ans+=fc(r); r=0; l=0; } st.pop(); } ans+=fc(r); cout<<ans<<endl; }}
阅读全文
0 0
- 51Nod-1791-合法括号子段
- 51nod 1791 合法括号子段
- 51NOD 1791 合法括号子段
- 51nod 合法括号子段
- 合法括号子段 51Nod
- 合法括号子段 51Nod
- 51nod 1791 合法括号子段 DP
- 51Nod 1791 合法括号子段(栈+乱搞)
- 51nod 1791 合法括号子段(DP)
- 51nod 1791 合法括号子段(模拟)
- 51nod 1791 合法括号子段 (dp)
- 51nod 1791 合法括号子段 (队列)
- 51nod 1478 括号序列的最长合法子段
- 51Nod-1478-括号序列的最长合法子段
- 51nod-1478 括号序列的最长合法子段
- 51nod 1478 括号序列的最长合法子段
- 51 nod 合法括号子段 (单调栈)
- 1791 合法括号子段
- 常用数据库连接池 (DBCP、c3p0、Druid) 配置说明
- java架构师大型分布式项目实战视频教程
- Draw Together with a Neural Network
- 20171027
- 取余和取模的实际问题联系(for+if)
- 51NOD 1791 合法括号子段
- Xcode9无法加载图片?
- 数据分析(1)-numpy
- 文章标题
- div元素及其属性布局页面
- R记录程序运行时间
- 语音识别的技术路线学习笔记
- Course Schedule解题心得
- java架构师大型分布式项目实战视频教程