标签:blank 发热 图片 sed printf font 输入 exist splay
时间限制: 1000 ms 内存限制: 524288 KB
Hecy 又接了个新任务:BE 处理。BE 中有一类被称为 GBE。
以下是 GBE 的定义:
A
是 GBE,则 [A]
与 (A)
都是 GBEA
与 B
都是 GBE,那么 AB
是 GBE下面给出一个 BE,求至少添加多少字符能使这个 BE 成为 GBE。
输入仅一行,为字符串 BE。
输出仅一个整数,表示增加的最少字符数。
[])
1
对于 100% 的数据,输入的字符串长度小于 100。
sol:开始的时候头脑发热以为O(n)扫一遍就没了,发现只要 ”([)]“ 这样的数据就跪了,于是老老实实写n^3dp
#include <bits/stdc++.h> using namespace std; const int N=105; char S[N]; int n,dp[N][N]; int main() { // freopen("kh1.in","r",stdin); int i,j,k; scanf("%s",S+1); n=strlen(S+1); for(i=2;i<=n;i++) { for(j=1;j+i-1<=n;j++) { int l=j,r=j+i-1; if((S[l]==‘(‘&&S[r]==‘)‘)||(S[l]==‘[‘&&S[r]==‘]‘)) dp[l][r]=max(dp[l][r],dp[l+1][r-1]+2); for(k=l;k<r;k++) dp[l][r]=max(dp[l][r],dp[l][k]+dp[k+1][r]); } } printf("%d\n",n-dp[1][n]); return 0; } /* input []) output 1 input ][][(())((([]))) output 2 */
标签:blank 发热 图片 sed printf font 输入 exist splay
原文地址:https://www.cnblogs.com/gaojunonly1/p/10354786.html