RE求助
查看原帖
RE求助
1024189
funeral楼主2024/6/12 19:02
#include<bits/stdc++.h>
using namespace std;
int dp[500][500];
string s,n;

int main(){
	cin>>s;
	int L=s.size();
	memset(dp,127,sizeof(dp));
//	cout<<dp[1][L]<<endl;
	for(int i=0;i<L;i++){
		n[i+1]=s[i];
	}
	for(int i=1;i<=L;i++)dp[i][i]=1;
	
	for(int len=2;len<=L;len++){
		for(int i=1;i<=L;i++){
			if(i+len-1>L)continue;
			int l=i,r=i+len-1;
			if(n[l]==n[r]){
				dp[l][r]=dp[l+1][r];
//				continue;
			}else
			for(int j=l;j<r;j++){
				dp[l][r]=min(dp[l][r],dp[l][j]+dp[j+1][r]);
			}
		}
	}
	cout<<dp[1][L];
	return 0;
}
2024/6/12 19:02
加载中...