2 条题解
-
0
#include<bits/stdc++.h> using namespace std; int dp[105][105],a[105],T,n; int main(){ cin>>T; for(int ncase=1;ncase<=T;ncase++) { cin>>n; for(int i=1;i<=n;i++){ cin>>a[i]; } memset(dp,0,sizeof(dp)); for(int i=1;i<=n;i++){ dp[i][i]=1; } for(int len=2;len<=n;len++){ for (int i=1;i+len-1<=n;i++) { int j=i+len-1; dp[i][j]=dp[i][j-1]+1; for(int k=i;k<j;k++) { if(a[k]==a[j]){ dp[i][j]=min(dp[i][j],dp[i][k]+dp[k+1][j-1]); } } } } cout<<"Case "<<ncase<<": "<<dp[1][n]<<endl; } return 0; }
信息
- ID
- 2799
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 7
- 标签
- 递交数
- 87
- 已通过
- 18
- 上传者