链接

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. SVG实现描边动画

    说起SVG,我是恨它又爱它,恨它是因为刚开始接触的时候自己傻B地想用代码去写它,其实在web上我们用它做交互也只是用了几个常用的特性而已,其他的标签知道这么一回事就成了,其实说白了它就是一种图片格式, ...

  2. java_object的具体使用--上帝

    就我们所知道的,java中有子类和父类,子类由于继承父类而形成,那么父类还有没有父类呢?答案是有了,父类的父类就是object类,一切父类都继承了它,那么根据继承的属性,每一个子类都有一个object ...

  3. makefile--Unfound symbol

    Unfound symbol ,库函数的包含问题或者头文件包含问题 makefile对#的识别度太低了,如果使用了,#它之后的可能就不能识别了,然后会报错的Unfound symbol /////// ...

  4. Linux内核中的通用双向循环链表

    开发中接触Linux越来越多,休息放松之余,免不了翻看翻看神秘的Linux的内核.看到双向链表时,觉得挺有意思的,此文记下. 作为众多基础数据结构中的一员,双向循环链表在各种“教科书”中的实现是相当的 ...

  5. tar解压去除文件夹

    tar zxvf test.tar.gz  --strip-components 1 解压到当前目录,并去除一级目录

  6. sed线上经典案例之-同时替换多个字符串

    回答网友请教的一个问题:配置文件如下:[aaa]cfg1=aaaxxxx=bbbcfg2=ccccfg3=ddd[bbb]cfg1=eeeyyyy=fffcfg2=gggcfg3=hhhcfg4=ii ...

  7. C#细节忽略的问题:int 与 int?

    int 与 int? 天天都在看,却不知道这2有什么区别呢? 首先说明下这个?的由来吧:C#值类型使不可谓null的,但是sql server的 int 确是可以为null的. 废话不多说直接上代码 ...

  8. 制作UI纹理(UI Texture)

    什么情况下使用UI Texture UI Texture的功能是在屏幕上显示一张图片,在这一点上它和Sprite有着相似的功能,但是UI Texture会消耗单独的DrawCall去渲染,并会单独加载 ...

  9. entity framework in mysql

    To start using Entity Framework 6 and Visual Studio 2013 is necessary to install MySQL for Visual St ...

  10. bootstrap form

    http://getbootstrap.com/examples/starter-template/ <form class="form-horizontal" role=& ...