P11248 [GESP202409 七级] 矩阵移动 求解
  • 板块题目总版
  • 楼主Da_Sha_Bi_
  • 当前回复2
  • 已保存回复2
  • 发布时间2024/11/11 20:23
  • 上次更新2024/11/11 22:57:03
查看原帖
P11248 [GESP202409 七级] 矩阵移动 求解
1199528
Da_Sha_Bi_楼主2024/11/11 20:23
#include<bits/stdc++.h>
#define int long long
using namespace std;
char a;
int t,n,m,x,dp[470][470][300];
signed main(){
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	cin>>t;
	while(t--){
		cin>>n>>m>>x;
		memset(dp,0,sizeof(dp));
		for(int i=1;i<=n;i++){
			for(int j=1;j<=m;j++){
				cin>>a;
				for(int k=0;k<=x;k++){
					int b;
					b=max(dp[i-1][j][k],dp[i][j-1][k])+(a=='1');
					if(a=='?'&&k!=0){
						b=max(b,max(dp[i-1][j-1][k],dp[i][j-1][k-1]+1));
					}
					dp[i][j][k]=b;
				}
			}
		}
		int maxV=-1;
		for(int i=0;i<=x;i++){
			maxV=max(dp[n][m][i],maxV);
		}
		cout<<maxV<<endl;
	}
	return 0;
}

这样的代码是会MLE的,但如果不加上的话就会RE。

本人只有30分

希望高人指点

2024/11/11 20:23
加载中...