求助为什么我的代码的答案要减一
查看原帖
求助为什么我的代码的答案要减一
966082
huangmingyi楼主2024/3/3 21:07
#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,dp[55][55];
string s;
signed main(){
	cin>>s;
	s='!'+s;
	int l=s.size();
	memset(dp,0x3f,sizeof(dp));
	for(int i=1;i<=l;i++){
		dp[i][i]=1;
	}
	for(int len=2;len<=l;len++){
		for(int i=1;i+len-1<=l;i++){
			int j=i+len-1;
			if(s[i]==s[j]){
				dp[i][j]=min(dp[i][j-1],dp[i+1][j]);
			}else{
				for(int k=i;k+1<=j;k++){
					dp[i][j]=min(dp[i][j],dp[i][k]+dp[k+1][j]);
				}
			}
		}
	}
	cout<<dp[1][l]-1;
	return 0;
}
2024/3/3 21:07
加载中...