Brackets(POJ
来源:互联网 发布:php pack 函数 java 编辑:程序博客网 时间:2024/06/03 20:00
一、题目大意
先定义了什么叫括号,然后问能够匹配的括号数
二、题目思路
dp[i][j]:表示的是区间[i,j]匹配的括号次数。
特殊:当( s[i] == '(' && s[j] == '')' ) || (s[i] == '[' && s[j] == ']') dp[i][j] = dp[i+1][j-1] + 2;
三、附加代码
#include<iostream>#include<cstdio>#include<algorithm>#include<stack>#include<queue>#include<cstring>#include<string>#include<set>#include<cmath>#include<map>#include<sstream>using namespace std;#define inf 0x3f3f3f3ftypedef long long LL;const int maxn = 100 + 8;string s;int dp[maxn][maxn];int main(){ while(cin >>s){ if(s == "end") break; memset(dp,0,sizeof dp); int len = (int)s.length(); for(int l = 1; l < len; ++l){ //区间的长度 for(int i = 0, j = l; j < len; ++i, ++j){ //长度为l的区间[i,j] if( (s[i] == '(' && s[j] == ')') || (s[i] == '[' && s[j] == ']') ) //特殊条件的判断 dp[i][j] = dp[i+1][j-1] + 2; for(int k = i; k < j; ++k) dp[i][j] = max(dp[i][j] , dp[i][k] + dp[k+1][j]); } } cout << dp[0][len-1] << endl; } return 0;}/*((()))()()()([]]))[)(([][][)end*/
阅读全文
0 0
- Brackets(POJ
- Brackets POJ
- POJ 1141 Brackets Sequence
- POJ 1141 Brackets Sequence
- Brackets Sequence--poj--1141
- poj 1141 Brackets Sequence
- poj 1141 Brackets Sequence
- POJ 1141 Brackets Sequence
- POJ 1141 Brackets Sequence
- poj 1141 Brackets Sequence
- POJ 1141 Brackets Sequence
- POJ 1141 Brackets Sequence
- DP poj 2955 Brackets
- poj 1141(Brackets Sequence)
- poj 1141 brackets sequence
- poj 1141 Brackets Sequence
- POJ 1141 Brackets Sequence
- poj 1141 Brackets Sequence
- JAAS:灵活的Java安全机制
- Swift下标
- MFC学习笔记-界面00、动态数组
- camera2 opengl实现滤镜效果录制视频 目录
- 欧几里得和扩展欧几里得讲解(基础数论)
- Brackets(POJ
- 文章标题
- oracleday20(游标 分页 分页的扩展 让分页的构成更加实用 视图)
- POJ-1258-Agri-Net [最小生成树]
- spring mvc转发
- PAT basic 1040
- Masonry1.0.2 源码解析
- AngularJs学习之路(十一)
- SAP BC 系列教程(BC400至BC680)…