dfs做法咋优化?
不会dp只好包搜了
40分代码
#include<bits/stdc++.h>
using namespace std;
unsigned long long a[1010];
unsigned long long ans;
unsigned long long n , m , sumw;
void dfs(unsigned long long r , unsigned long long l , unsigned long long sume , unsigned long long step){
if(r > l){
sumw = max(sumw , sume);
return ;
}
dfs(r + 1 , l , sume + a[r] * (1 << step) , step + 1);
dfs(r , l - 1 , sume + a[l] * (1 << step) , step + 1);
}
int main(){
cin >> n >> m;
for(unsigned long long i = 1 ; i <= n ; i++){
for(unsigned long long j = 1 ; j <= m ; j++){
cin >> a[j];
}
sumw = 0;
dfs(1 , m , 0 , 1);
ans += sumw;
}
cout << ans;
return 0;
}