poj 2955(区间dp)

it2022-05-23  73

区间dp基础题,正在学

#include <iostream> #include <cstring> #include <cstdio> #include <algorithm> using namespace std; const int maxn=100+10; string a; int dp[maxn][maxn]; int main() { while(cin >> a) { if(a[0]=='e') break; int n=a.length(); memset(dp,0,sizeof(dp)); for(int l=1;l<n;l++) { for(int i=0,j=l;j<n;j++,i++) { if(a[i]=='('&&a[j]==')'||a[i]=='['&&a[j]==']') dp[i][j]=dp[i+1][j-1]+2;//存在括号值增大2 for(int k=i;k<j;k++) dp[i][j]=max(dp[i][j],dp[i][k]+dp[k+1][j]);//同等长度的字符串当然有括号的值更大 } } printf("%d\n",dp[0][n-1]); } return 0; }

 

转载于:https://www.cnblogs.com/Wangwanxiang/p/7367726.html

相关资源:数据结构—成绩单生成器

最新回复(0)