链接

dp好想  根据它定义的 记忆化下就行

路径再dfs一遍 刚开始以为要判空格 所以加了判空格的代码 后来知道不用 。。

 #include <iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<stdlib.h>
using namespace std;
#define INF 0xffffff
int dp[][];
char s[],q[];
int dfs(int a,int b)
{
int i,d1,d2 = INF;
if(dp[a][b]!=-)
return dp[a][b];
if(a==b)
return dp[a][b] = ;
if(a>b)
return dp[a][b] = ;
if(s[a]==q[s[b]])
d1 = dfs(a+,b-);
else
{
int x,y;
x = dfs(a+,b)+;
y = dfs(a,b-)+;
d1 = min(x,y);
}
for(i = a ; i < b ; i++)
d2 = min(d2,dfs(a,i)+dfs(i+,b));
dp[a][b] = min(d1,d2);
return dp[a][b];
}
void find(int a,int b)
{
int i;
if(a==b)
{
if(s[a]=='('||s[a]==')')
printf("()");
else if(s[b]=='['||s[a]==']')
printf("[]");
return ;
}
if(a>b)
return ;
if(s[a]==q[s[b]]&&dp[a][b]==dp[a+][b-])
{
if(s[a]=='(')
{
printf("(");
find(a+,b-);
printf(")");
}
else if(s[a]=='[')
{
printf("[");
find(a+,b-);
printf("]");
}
}
else
if(dp[a][b]==(dp[a+][b]+))
{
if(s[a]=='('||s[a]==')')
printf("()");
else if(s[a]=='['||s[a]==']')
printf("[]");
find(a+,b);
}
else
if(dp[a][b]==dp[a][b-]+)
{
find(a,b-);
if(s[b]=='('||s[b]==')')
printf("()");
else if(s[b]=='['||s[b]==']')
printf("[]");
}
else
{
for(i = a ; i < b ; i++)
{
if(dp[a][b]==dp[a][i]+dp[i+][b])
{
find(a,i);
find(i+,b);
break;
}
}
}
}
int main()
{
int k;
q[')'] = '(';
q[']'] = '[';
//q[' '] = ' ';
while(gets(s)!=NULL)
{
memset(dp,-,sizeof(dp));
k = strlen(s);
int ans = dfs(,k-);
find(,k-);
puts("");
}
return ;
}

poj1141Brackets Sequence(dp+路径)的更多相关文章

  1. DP+路径 URAL 1029 Ministry

    题目传送门 /* 题意:就是从上到下,找到最短路,输出路径 DP+路径:状态转移方程:dp[i][j] = min (dp[i-1][j], dp[i][j-1], dp[i][j+1]) + a[[ ...

  2. POJ1015 && UVA - 323 ~Jury Compromise(dp路径)

    In Frobnia, a far-away country, the verdicts in court trials are determined by a jury consisting of ...

  3. Codeforces Round #598 (Div. 3)E(dp路径转移)

    题:https://codeforces.com/contest/1256/problem/E 题意:给一些值,代表队员的能力值,每组要分3个或3个以上的人,然后有个评价值x=(队里最大值-最小值), ...

  4. POJ 1141 Brackets Sequence(DP)

    题目链接 很早 很早之前就看过的一题,今天终于A了.状态转移,还算好想,输出路径有些麻烦,搞了一个标记数组的,感觉不大对,一直wa,看到别人有写直接输出的..二了,直接输出就过了.. #include ...

  5. [poj3017] Cut the Sequence (DP + 单调队列优化 + 平衡树优化)

    DP + 单调队列优化 + 平衡树 好题 Description Given an integer sequence { an } of length N, you are to cut the se ...

  6. poj2264 dp+路径

    //Accepted 208K 0MS //dp //最长公共子序列+路径 #include <cstdio> #include <cstring> #include < ...

  7. Codeforces Round #277 (Div. 2) E. LIS of Sequence DP

    E. LIS of Sequence Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/486/pr ...

  8. URAL1029. Ministry(DP+路径)

    链接 路径麻烦啊 很多细节 倒回去搜一遍 卡了一节数据库.. #include <iostream> #include<cstdio> #include<cstring& ...

  9. [IOI1999]花店橱窗布置(DP路径记录)

    题目:[IOI1999]花店橱窗布置 问题编号:496 题目描述 某花店现有F束花,每一束花的品种都不一样,同时至少有同样数量的花瓶,被按顺序摆成一行,花瓶的位置是固定的,从左到右按1到V顺序编号,V ...

随机推荐

  1. 移动前端开发之viewport的深入理解(转载)

    本文为转载文章,原文网址:http://www.cnblogs.com/2050/p/3877280.html 在移动设备上进行网页的重构或开发,首先得搞明白的就是移动设备上的viewport了,只有 ...

  2. MFC GDI相关对象

    首先说明几个名词: CDC 是MFC对Wind32 API的设备上下文(DC)进行封装的C++类,由他继承的类包括 CPaintDC(常用)CWindowDC(现在软件基本不用) CClientDC( ...

  3. AVPlayer 视频播放

    1. AVPlayer AVPlayer 是一个用来播放基于时间的视听媒体的控制器对象(一个队播放和资源时间相隔信息进行管理的对象,而非一个视图或窗口控制器). AVPlayer支持播放从本地, 分步 ...

  4. cgi创建web应用(一)之传递表单数据与返回html

    主旨: 0.环境说明 1.创建一个cgi本地服务 2.创建一个html表单页 3.创建一个对应的cgi 脚本文件 4.运行调试 0.环境说明: 系统:win7 32位家庭版 python:2.7 代码 ...

  5. C++ Vector

    在c++中,vector是一个十分有用的容器,下面对这个容器做一下总结. 1 基本操作 (1)头文件#include<vector>. (2)创建vector对象,vector<in ...

  6. 、Dll文件的编写 调用 说明

    1>新建Dll文件TestLib.dll 新建Unit文件U_TestFunc U_TestFunc代码如下: unit U_TestFunc; interface uses //尽可能的少us ...

  7. MVC+EF 随笔小计——NuGet程序包管理

    安装EF 打开 工具-库程序包管理器-程序包管理器控制台 输入 install-package entityframework 去MSDN上查看下EF的架构图:http://msdn.microsof ...

  8. 拓展:switch实现

    拓展:switch实现 参考中谷教育 python视频:switch  switch语句用于编写多分支结构的程序,类似于if ... elif ...else语句.switch语句表达的分支结构比if ...

  9. MVC-简单验证码制作

    1.制作验证码: using System; using System.Collections.Generic; using System.Drawing; using System.Drawing. ...

  10. CODEVS 1073 家族

    题目描述 Description 若某个家族人员过于庞大,要判断两个是否是亲戚,确实还很不容易,现在给出某个亲戚关系图,求任意给出的两个人是否具有亲戚关系. 规定:x和y是亲戚,y和z是亲戚,那么x和 ...