POJ 2955:Brackets(区间DP)
2024-09-01 00:59:36
http://poj.org/problem?id=2955
题意:给出一串字符,求括号匹配的数最多是多少。
思路:区间DP。
对于每个枚举的区间边界,如果两边可以配对成括号,那么dp[i][j] = dp[i+1][j-1] + 2,表示由上一个状态加上当前的贡献。
然后和普通的区间合并一样去更新。
#include <cstring>
#include <cstdio>
#include <iostream>
#include <string>
using namespace std;
#define N 105
int dp[][];
string s; int main() {
while(cin >> s) {
if(s == "end") break;
int n = s.length();
memset(dp, , sizeof(dp));
for(int len = ; len < n; len++) {
for(int i = ; i + len < n; i++) {
int j = i + len;
if(s[i] == '(' && s[j] == ')' || s[i] == '[' && s[j] == ']') dp[i][j] = + dp[i+][j-];
for(int k = i; k < j; k++)
if(dp[i][j] < dp[i][k] + dp[k+][j]) dp[i][j] = dp[i][k] + dp[k+][j];
}
}
printf("%d\n", dp[][n-]);
}
return ;
}
最新文章
- centos 7.0 安装nginx 1.117
- 【2016-11-2】【坚持学习】【Day17】【通过反射自动将datareader转为实体info】
- php 获取中文长度 截取中文字符串
- Windows—JDK安装与环境变量配置
- decode_json 必须是unicode形式的字符
- 01-C语言基本知识
- 运行复制的ZooKeeper 部署
- Navicat如何进行搜索筛选
- linux安装Django 以及 生产环境部署实现高并发
- python avro 数据格式使用demo
- js数组作为参数用ajax向后台传参数
- [BZOJ3295] [Cqoi2011]动态逆序对(带修改主席树)
- c语言基础——基本数据类型
- ArrayBlockingQueue, LinkedBlockingQueue, ConcurrentLinkedQueue, RingBuffer
- 安全删除linux旧内核的方法
- SQL Server 自动化运维系列 - 监控磁盘剩余空间及SQL Server错误日志(Power Shell)
- ossec安装
- 转发:消息发布时间展示为刚刚、几分钟前、几小时前等等(php篇)
- AAuto 快速开发win32小程序
- WPF GridControl单元格值与过滤值相同时,改变单元格背景色