nyoj 括号匹配
| 1 | (1) | (3) | (6) | (10) |
| 1 | (2) | (5) | (9) | |
| 1 | (4) | (8) | ||
| 1 | (7) | |||
| 1 |
// ConsoleApplication8.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include<iostream>
#include<string>
#include<memory.h>
using namespace std;
#define min(x,y) (x < y ? x : y) bool isEqual(char c,char b)
{
if(c=='('&&b==')') return true;
if(c=='['&&b==']') return true;
return false; } int main()
{
int dp[][]; int len;
cin>>len;
while(len--)
{
string a;
cin>>a;
int len=a.length();
memset(dp,,sizeof(dp));//clear
dp[][]=;
for(int i=;i<len;i++)
{
dp[i][i]=; for(int j=i-;j>=;j--)
{
dp[j][i]=;
if(isEqual(a[j],a[i]))
{
dp[j][i]= min(dp[j][i],dp[j+][i-]);
}
for(int k=j;k<i;k++)
{
dp[j][i]=min(dp[j][k]+dp[k+][i],dp[j][i]); } } } cout<<dp[][len-]<<endl; } }
// ConsoleApplication8.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include<iostream>
#include<string>
#include<memory.h>
using namespace std;
#define min(x,y) (x < y ? x : y) bool isEqual(char c,char b)
{
if(c=='('&&b==')') return true;
if(c=='['&&b==']') return true;
return false; } int main()
{
int dp[][]; int len;
cin>>len;
while(len--)
{
string a;
cin>>a;
int len=a.length();
memset(dp,,sizeof(dp));//clear
// cout<<dp[45][56]<<endl;
dp[][]=;
dp[][]=;
for(int i=;i<=len;i++)
{
dp[i][i]=; for(int j=i-;j>=;j--)
{
dp[j][i]=dp[j][i-]+; //没有匹配的情况
for(int k=j;k<i;k++)
{
if(isEqual(a[k-],a[i-]))
{
dp[j][i]= min(dp[j][i],dp[j][k-]+dp[k+][i-]);
} } } } cout<<dp[][len]<<endl; } }
nyoj 括号匹配的更多相关文章
- [原]NYOJ 括号匹配系列2,5
本文出自:http://blog.csdn.net/svitter 括号匹配一:http://acm.nyist.net/JudgeOnline/problem.php?pid=2 括号匹配二:htt ...
- NYOJ - 括号匹配(二)(经典dp)
括号匹配(二) 时间限制:1000 ms | 内存限制:65535 KB 难度:6 描写叙述 给你一个字符串,里面仅仅包括"(",")","[&quo ...
- NYOJ 题目15 括号匹配(二)(区间DP)
点我看题目 题意 : 中文题不详述. 思路 : 本来以为只是个小模拟,没想到是个区间DP,还是对DP不了解. DP[i][j]代表着从字符串 i 位置到 j 位置需要的最小括号匹配. 所以初始化的DP ...
- [NYOJ 15] 括号匹配(二)
括号匹配(二) 时间限制:1000 ms | 内存限制:65535 KB 难度:6 描述 给你一个字符串,里面只包含"(",")","[&qu ...
- nyoj 15 括号匹配(2)
括号匹配(二) 时间限制:1000 ms | 内存限制:65535 KB 难度:6 描述 给你一个字符串,里面只包含"(",")","[" ...
- nyoj 15 括号匹配(二) (经典dp)
题目链接 描述 给你一个字符串,里面只包含"(",")","[","]"四种符号,请问你需要至少添加多少个括号才能使这些 ...
- DP_括号匹配序列问题
括号匹配问题 简单括号匹配问题是给出字符串,判断字符串中的括号是否匹配,此类问题核心解决方案就是利用栈的后进先出的特性,从左到右依次遍历字符串,遇左括号进栈,遇右括号将其与栈顶元素配对,若能配对,则栈 ...
- 括号匹配 区间DP (经典)
描述给你一个字符串,里面只包含"(",")","[","]"四种符号,请问你需要至少添加多少个括号才能使这些括号匹配起来 ...
- YTU 3003: 括号匹配(栈和队列)
3003: 括号匹配(栈和队列) 时间限制: 1 Sec 内存限制: 128 MB 提交: 2 解决: 2 [提交][状态][讨论版] 题目描述 假设一个表达式中只允许包含三种括号:圆括号&quo ...
随机推荐
- 【8】了解Bootstrap栅格系统基础案例(3)
这次我们来说下列偏移: 列偏移就是使用 .col-md-offset-* 类可以将列向右侧偏移.这些类实际是通过使用 * 选择器为当前元素增加了左侧的边距(margin).例如,.col-md-off ...
- oracle常用SQL语句(汇总版)
Oracle数据库常用sql语句 ORACLE 常用的SQL语法和数据对象一.数据控制语句 (DML) 部分 1.INSERT (往数据表里插入记录的语句) INSERT INTO 表名(字段名1, ...
- Java中的异常处理机制的简单原理和应用
异常是指java程序运行时(非编译)所发生的非正常情况或错误,与现实生活中的事件很相似,现实生活中的事件可以包含事件发生的时间.地点.人物.情节等信息,可以用一个对象来表示,Java使用面向对象的方式 ...
- 【BZOJ1823】 [JSOI2010]满汉全席
Description 满汉全席是中国最丰盛的宴客菜肴,有许多种不同的材料透过满族或是汉族的料理方式,呈现在數量繁多的菜色之中.由于菜色众多而繁杂,只有极少數博学多闻技艺高超的厨师能够做出满汉全席,而 ...
- Xcode 调试技巧-b
随着Xcode 5的发布,LLDB调试器已经取代了GDB,成为了Xcode工程中默认的调试器.它与LLVM编译器一起,带给我们更丰富的流程控制和数据检测的调试功能.LLDB为Xcode提供了底层调试环 ...
- Python的库和资源(转)
Python的库和资源: http://blog.sina.com.cn/s/blog_3cb6a78c0100hpaq.html Python 常用模块: http://www.pythonclub ...
- asp.net 文件复制或删除用相对路径,File.Copy中用相对路径,巧用相对路径复制文件
再复制文件 File.Copy(Server.MapPath("被复制的文件相对路径"), Server.MapPath("目的位置相对路径"), true); ...
- WP8教程
http://www.maiziedu.com/courses-list?technology_category=6
- POJ 2195 Going Home(最小费用最大流)
http://poj.org/problem?id=2195 题意 : N*M的点阵中,有N个人,N个房子.让x个人走到这x个房子中,只能上下左右走,每个人每走一步就花1美元,问当所有的人都归位了之 ...
- 【NOIP 2013 DAY2 T3】 华容道(spfa)
题目描述 [问题描述] 小 B 最近迷上了华容道,可是他总是要花很长的时间才能完成一次.于是,他想到用编程来完成华容道:给定一种局面, 华容道是否根本就无法完成,如果能完成, 最少需要多少时间. 小 ...