我要与时间赛跑
查看原帖
我要与时间赛跑
672360
Ch35楼主2022/6/7 19:43

这使我不得不与时间赛跑,时间超限6个点

#include<bits/stdc++.h>
using namespace std;
int n,m,a[205][205],maxx=-999999999,cnt;
void dfs(int x,int y){
    if(x==1){maxx=max(cnt,maxx);return;}
    if(y-1>0){
        cnt+=a[x-1][y-1];
        dfs(x-1,y-1);
        cnt-=a[x-1][y-1];
    }
    cnt+=a[x-1][y];
    dfs(x-1,y);
    cnt-=a[x-1][y];
    if(y+1<=m){
        cnt+=a[x-1][y+1];
        dfs(x-1,y+1);
        cnt-=a[x-1][y+1];
    }
}
int main(){
	cin>>n>>m;
	for(int i=1;i<=n;i++){
	    for(int j=1;j<=m;j++)cin>>a[i][j]; 
    }
    dfs(n+1,m/2+1);
    cout<<maxx;
	return 0;
}

附录

2022/6/7 19:43
加载中...