2 条题解

  • 1
    @ 2023-9-9 14:15:29
    #include <iostream>
    using namespace std;
    const int N=1e2+10;
    string s;
    int dp[N][N];
    int main(){
    	cin>>s;
    	int n=s.length();
    	for(int i=n-2;i>=0;i--){
    		for(int j=0;j<n;j++){
    			if((s[i]=='('&&s[j]==')')||(s[i]=='['&&s[j]==']'))
    				dp[i][j]=dp[i+1][j-1]+2;
    			for(int k=i;k<j;k++){
    				dp[i][j]=max(dp[i][j],dp[i][k]+dp[k+1][j]);
    			} 
    		}
    	}
    	cout<<n-dp[0][n-1]<<endl;
    }
    

    信息

    ID
    469
    时间
    1000ms
    内存
    512MiB
    难度
    6
    标签
    递交数
    34
    已通过
    11
    上传者