求调 或 hack
查看原帖
求调 或 hack
1005260
Andy1818楼主2025/7/20 09:20

90pts WA on #3

#include<bits/stdc++.h>
using namespace std;
char s[505];
long long dp[505][505];
int main()
{
 	ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
	string ss;
	cin>>ss;
	char qwerty;
	long long kkk,yuan;
	long long n=ss.size(),ll,rr;
	for(long long i=1;i<=n;i++){
		s[i]=ss[i-1];
		dp[i][i]=1;
	}
	for(long long i=1;i<=n;i++){
		for(long long j=i+1;j<=n;j++){
			dp[i][j]=1e9;
		}
	}
	for(long long k=2;k<=n;k++){
		for(long long l=1,r=k;r<=n;l++,r++){
			ll=rr=kkk=yuan=0;
			qwerty=s[l];
			dp[l][r]=1;
			for(long long i=l+1;i<=r;i++){
				if(s[i]!=qwerty and s[i-1]==qwerty){
					ll=i;
				}
				if(s[i]==qwerty and s[i-1]!=qwerty){
					rr=i-1;
					kkk+=dp[ll][rr];
					ll=rr=0;
				} 
			} 
			if(ll!=0){
				kkk+=dp[ll][r];
			}
			if(s[l]==s[r]){
				ll=l,rr=r;
				while(ll<=rr){
					if(s[ll]==s[rr] and s[ll]==qwerty){
						ll++;
						rr--;
					}
					else{
						break;
					}
				}
				yuan=dp[ll][rr]; 
			}
			else{
				yuan=1e9;
			}
			dp[l][r]+=min(kkk,yuan);
			for(long long i=l;i<r;i++){
				dp[l][r]=min(dp[l][r],dp[l][i]+dp[i+1][r]);
			} 
		}
	}
	cout<<dp[1][n]<<endl;
	return 0;
}
差不多把所有的贴的hack都试了遍
2025/7/20 09:20
加载中...