UVa 1626 括号序列——区间DP
来源:互联网 发布:java小数点保留两位 编辑:程序博客网 时间:2024/06/08 11:25
这题坑在输入输出,注意输入时两两之间有空行,输出时两两之间也有空行,而且紫书上的输出函数执行后时不带换行的
#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#include <string>using namespace std;char str[110];int dp[110][110];//表示闭区间[i,j]需要添加的最小括号数int n;//str长度bool match(char a, char b){ if (a == '(' && b == ')') return true; if (a == '[' && b == ']') return true; return false;}void DP() { for (int i = 0; i < n; i++) { dp[i + 1][i] = 0; dp[i][i] = 1; } for (int i = n - 2; i >= 0; i--) { for (int j = i + 1; j < n; j++) { dp[i][j] = j - i + 1; if (match(str[i], str[j])) { dp[i][j] = min(dp[i][j], dp[i + 1][j - 1]); } for (int k = i; k < j; k++) { dp[i][j] = min(dp[i][j], dp[i][k] + dp[k + 1][j]); } } }}void output(int i, int j) { if (i > j) return; if (i == j) { if (str[i] == '(' || str[i] == ')') { printf("()"); } else printf("[]"); return; } int ans = dp[i][j]; if (match(str[i], str[j]) && ans == dp[i + 1][j - 1]) { printf("%c", str[i]); output(i + 1, j - 1); printf("%c", str[j]); return; } for (int k = i; k < j; k++) { if (ans == dp[i][k] + dp[k + 1][j]) { output(i, k); output(k + 1, j); return; } }}int main(){ int T; scanf("%d", &T); getchar(); int flag = 0; while (T--) { getchar(); gets(str); n = strlen(str); DP(); if (flag++) printf("\n"); output(0, n - 1); printf("\n"); } return 0;}
阅读全文
1 0
- UVa 1626 括号序列——区间DP
- UVA 1626 括号序列(区间dp)
- 括号序列 区间DP
- 【区间dp】括号序列再战猪猪侠
- uva 1626 括号序列
- 【bzoj4350】括号序列再战猪猪侠 区间DP
- 区间DP(括号序列,uva1626)
- CodeVS3657 括号序列 解题报告【区间DP】
- BZOJ4350: 括号序列再战猪猪侠(区间DP)
- 区间DP——括号匹配
- UVA 1626 区间DP
- UVA 10003 —— 区间DP
- 【基础练习】【区间DP】codevs3657 括号序列题解
- [区间DP 思路题] BZOJ 4350 括号序列再战猪猪侠
- 区间dp括号匹配
- poj1141 括号序列 dp
- dp uva1626 括号序列
- poj2955,括号匹配,区间dp
- nor flash 和nand flash 的区别
- 分布式架构真正适用于大型互联网项目的架构! dubbo+zookeeper+springmvc+mybatis+shiro+redis
- Vizard学习第一天
- 搜索 G
- ubnt ER-X
- UVa 1626 括号序列——区间DP
- object-c 和 java 可以通用的DES散列加密
- c#学习之--类型与引用
- 创建ocfs2集群和增加节点
- POJ 1204 Word Puzzles 笔记
- Qt样式表
- 【工具】Source Insight 和 keil 中 Tab 键设置为4空格代替
- VLAN原理详解
- 初试KMP!