萌新求救!!!!为什么80分

P1651 塔

数组都能开小来,爷笑了 ``` #include"bits/stdc++.h" using namespace std; int a[55],dp[55][500005],maxx,n; int main() { // freopen("tower.in","r",stdin); // freopen("tower.out","w",stdout); cin>>n; for(int i=1;i<=n;i++) { cin>>a[i]; maxx+=a[i]; } memset(dp,-2,sizeof(dp)); dp[0][0]=0; for(int i=1;i<=n;i++) { for(int j=0;j<=maxx;j++) { dp[i][j]=max(dp[i-1][j],dp[i-1][j+a[i]]); if(j>=a[i]) { dp[i][j]=max(dp[i][j],dp[i-1][j-a[i]]+a[i]); } else { dp[i][j]=max(dp[i][j],dp[i-1][a[i]-j]+j); } } } if(dp[n][0]<=0) { cout<<"-1"; } else cout<<dp[n][0]; } ```
by 珈乐唯毒 @ 2020-07-30 15:20:19


就这
by shitbro @ 2020-07-30 15:46:17


就这呀
by shitbro @ 2020-07-30 15:46:23


数组都能开小
by shitbro @ 2020-07-30 15:46:33


这开这么大会MLE诶
by Kiloio @ 2021-03-07 17:00:33


|