求调CF的C题
  • 板块学术版
  • 楼主fcy20180201
  • 当前回复8
  • 已保存回复8
  • 发布时间2024/9/15 00:43
  • 上次更新2024/9/15 11:29:50
查看原帖
求调CF的C题
866154
fcy20180201楼主2024/9/15 00:43

Wa on pretest 2

#include<bits/stdc++.h>
using namespace std;
int t,n,m,dp[1005][5];
char s[1005],c[5]={'n','a','r','e','k'};
int main(){
	scanf("%d",&t);
	while(t--){
		scanf("%d%d",&n,&m);
		memset(dp,-0x3f,sizeof(dp));
		dp[0][4]=0;
		for(int i=1;i<=n;i++){
			scanf("%s",s+1);
			for(int j=0;j<5;j++){
				dp[i][j]=max(dp[i][j],dp[i-1][j]);
				int res=dp[i][j],cur=j;
				for(int k=1;k<=m;k++){
					if(s[k]==c[(cur+1)%5])res++,cur=(cur+1)%5;
					else if(s[k]=='n' || s[k]=='a' || s[k]=='r' || s[k]=='e' || s[k]=='k')res--;
				}
				dp[i][cur]=max(dp[i][cur],res);
			}
		}
		int ans=0;
		for(int i=0;i<5;i++)ans=max(ans,dp[n][i]-(i+1)%5*2);
		printf("%d\n",ans);
	}
}

2024/9/15 00:43
加载中...