28分求助!
查看原帖
28分求助!
439177
Supor__Shoep楼主2022/7/28 20:49
//P1136迎接仪式
#include<bits/stdc++.h>
using namespace std;
const int MAXN=505;
const int MAXM=105;
int n,k;
int a[MAXN];
int dp[MAXN][MAXM][MAXM];
int main()
{
	cin>>n>>k;
	for(int i=1;i<=n;i++)
	{
		char x;
		cin>>x;
		if(x=='z')	a[i]=1;
	}
	for(int i=2;i<=n;i++)
	{
		for(int j=0;j<=k;j++)
		{
			for(int l=0;l<=k;l++)
			{
				if(a[i]==1&&a[i-1]==0)	dp[i][j][l]=dp[i-2][j][l]+1;
				if(a[i]==1&&a[i-1]==1&&j)	dp[i][j][l]=dp[i-2][j-1][l]+1;
				if(a[i]==0&&a[i-1]==0&&l)	dp[i][j][l]=dp[i-2][j][l-1]+1;
				if(a[i]==0&&a[i-1]==1&&j&&l)	dp[i][j][l]=dp[i-2][j-1][l-1]+1;
			}
		}
	}
	int maxx=INT_MIN;
	for(int i=2;i<=n;i++)
	{
		for(int j=0;j<=k;j++)	maxx=max(maxx,dp[i][j][j]);
	}
	cout<<maxx;
	return 0;
}
2022/7/28 20:49
加载中...