#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分
希望高人指点