adim @ 2018-06-11 18:53:09
TLE后四个点 dfs做的
#include<iostream>
using namespace std;
int a[1005][1005],n,ans,n2,tmp;
void dfs(int,int);
int max(int a1,int b1){
return a1>b1?a1:b1;
}
int main(){
int i,j;
cin>>n;
for(i=0;i<n;i++){
for(j=0;j<=i;j++){
cin>>a[i][j];
}
}
ans=-1;n2=0;tmp=0;
dfs(0,0);
cout<<ans;
return 0;
}
void dfs(int x,int y){
int i;
if(n2==n){
ans=max(ans,tmp);
return;
}
for(i=y;i<=y+1;i++){
tmp=tmp+a[x][i];
n2++;
dfs(x+1,i);
n2--;
tmp=tmp-a[x][i];
}
}
by adim @ 2018-06-11 18:59:18
我这个蒟蒻也只会dfs了
by sxyugao @ 2018-06-11 19:32:55
@2107qboi18 dfs超时很正常。。可以加上记忆化来优化
by LuckyCloud @ 2018-06-11 19:56:33
虽然暴力出奇迹,但还是要学一下DP和记忆化什么的吧