这样就不会被hack了吧
查看原帖
这样就不会被hack了吧
612412
Eibon楼主2024/6/21 10:48

rt

#include<bits/stdc++.h>
using namespace std;
const int maxn=50+5;
int n,m,t,ans;
int dp[maxn][2505][2],mx[2505];
char a[maxn][maxn];
void solve()
{
	scanf("%d%d%d",&n,&m,&t);
	for(int i=1;i<=n;i++){
		scanf("%s",a[i]+1);
	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			for(int k=1;k<=t;k++){
				if(j==1){
					dp[j][k][0]=mx[k-1];
					dp[j][k][1]=mx[k-1]+1;
				}
				else{
					if(a[i][j]==a[i][j-1]){
						dp[j][k][0]=dp[j-1][k][0];
						dp[j][k][1]=max(dp[j-1][k][1],dp[j-1][k-1][0])+1;
					}
					else{
						dp[j][k][0]=max(dp[j-1][k][1],dp[j-1][k-1][0]);
						dp[j][k][1]=max(dp[j-1][k][0],dp[j-1][k-1][1])+1;
					}
				}
				if(j==m){
					mx[k]=max({mx[k],dp[j][k][0],dp[j][k][1]});
					ans=max(ans,mx[k]);
				}
			}
		}
	}
	printf("%d\n",ans);
}
signed main()
{
	solve();
    return 0;
}
//dyyyyds
2024/6/21 10:48
加载中...