Codevs 3657括號序列

2022-03-01 00:54:01 字數 1209 閱讀 6767

題目大意:中文題,略

題目思路:區間dp

這個題是問需要新增多少個括號使之成為合法括號序列,那麼我們可以先求有多少合法的括號匹配,然後用字串長度減去匹配的括號數就行

狀態轉移方程主要是對於我們列舉的區間 dp[i][j],如果 i 和 j 處的括號能夠匹配,則dp[i][j]=dp[i+1][j-1]+1;

因為我們是從小到大列舉長度,所以小長度的區間一定是最優的,所以當 i 與 j 匹配時,則是子區間的最優值+1

#include #include 

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define lson root<<1,l,mid

#define rson root<<1|1,mid+1,r

#define fi first

#define se second

#define ping(x,y) ((x-y)*(x-y))

#define mst(x,y) memset(x,y,sizeof(x))

#define mcp(x,y) memcpy(x,y,sizeof(y))

using

namespace

std;

#define gamma 0.5772156649015328606065120

#define mod 1000000007

#define inf 0x3f3f3f3f

#define n 100005

#define maxn 1050typedef pair

pii;

typedef

long

long

ll;int

n,m,cnt,temp,ans;

char str[1000

];int dp[105][105

];int

main()

}printf(

"%d\n

",len-dp[1][len]*2

); }

return0;

}

codevs 3657 括號序列

時間限制 1 s 空間限制 256000 kb 題目等級 gold 題目描述 description 我們用以下規則定義乙個合法的括號序列 1 空序列是合法的 2 假如s是乙個合法的序列,則 s 和 s 都是合法的 3 假如a 和 b 都是合法的,那麼ab和ba也是合法的 例如以下是合法的括號序列 ...

CODEVS 3657 括號序列

問題描述 我們用以下規則定義乙個合法的括號序列 1 空序列是合法的 2 假如s是乙個合法的序列,則 s 和 s 都是合法的 3 假如a 和 b 都是合法的,那麼ab和ba也是合法的 例如以下是合法的括號序列 以下是不合法括號序列的 現在給定一些由 構成的序列 請新增盡量少的括號,得到乙個合法的括號序...

codevs 3657 括號序列

題目描述 description 我們用以下規則定義乙個合法的括號序列 1 空序列是合法的 2 假如s是乙個合法的序列,則 s 和 s 都是合法的 3 假如a 和 b 都是合法的,那麼ab和ba也是合法的 例如以下是合法的括號序列 以下是不合法括號序列的 現在給定一些由 構成的序列 請新增盡量少的括...