POJ 1141 Brackets Sequence
来源:互联网 发布:美联储 8月cpi数据 编辑:程序博客网 时间:2024/06/04 20:44
#include <cstdio>#include <cstring>#include <algorithm>#define INF 1000000000using namespace std;char s[110];int d[110][110];int path[110][110];int v[110][110];int dp(int i,int j){ int &ans = d[i][j]; if(i>j) return 0; if(ans != -1) return ans; ans = INF; if(s[i]=='('&&s[j]==')'|| s[i]=='['&&s[j]==']') { if(ans > dp(i+1,j-1)){ path[i][j] = 1; ans = dp(i+1,j-1); } } if(s[i]=='(' || s[i]=='[') { if(ans > dp(i+1,j)+1){ path[i][j] = 2; ans = dp(i+1,j)+1; } } if(s[j]==')'||s[j]==']') { if(ans>dp(i,j-1)+1){ path[i][j] = 3; ans = dp(i,j-1)+1; } } for(int k = i; k < j; k++){ if(ans>dp(i,k)+dp(k+1,j)){ ans = dp(i,k)+dp(k+1,j); v[i][j] = k; path[i][j] = 4; } } return ans; } void output(int i,int j){ if(i>j) return; if(path[i][j] == 1){ printf("%c",s[i]); output(i+1,j-1); printf("%c",s[j]); }else if(path[i][j] == 2){ printf("%c",s[i]); if(s[i]=='(') printf(")"); else printf("]"); output(i+1,j); }else if(path[i][j] == 3){ output(i,j-1); if(s[j]==']') printf("["); else printf("("); printf("%c",s[j]); }else if(path[i][j] == 4){ output(i,v[i][j]); output(v[i][j]+1,j); } }int main(){ while(gets(s)){ memset(d,-1,sizeof(d)); memset(path,0,sizeof(path)); memset(v,0,sizeof(v)); int n = strlen(s); dp(0,n-1); output(0,n-1); printf("\n"); } //while(1); return 0;}
0 0
- 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
- 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
- POJ - 1141 Brackets Sequence
- synchronized详解
- 为RT-Thread实现一个傻瓜式的工程向导工具(中期报告)
- CSU-ACM暑假集训基础组七夕专场 F - Problem F
- 从零开始学习Zstack之3
- Fast Food - UVa 662 dp
- POJ 1141 Brackets Sequence
- android之利用SQLite数据库实现登陆和注册
- hdu 4502 吉哥系列故事——临时工计划
- poj 1789
- Java Notify Wait Synchronized
- 黑马程序员 java学习笔记——网络编程
- 铁路控制系统初探
- HardFault_Handler问题查找方法
- Handler处理消息的顺序