2 条题解

  • 0
    @ 2022-10-4 11:39:44

    #include <bits/stdc++.h>

    using namespace std; const int N = 1e6+6; const int INF = 0x3f3f3f3f; int n; int a[1005],dp[1005][1005]; int main(){ cin>>n; for(int i=1;i<=n;i++) cin>>a[i]; memset(dp,0x3f,sizeof(dp)); dp[2][1]=a[2]; for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ if(j-i>=1) dp[j][i]=min(dp[j][i],dp[j-i][i-1]+a[j]); } for(int j=n;j>=1;j--){ if(i+j<=n) dp[j][i]=min(dp[j][i],dp[j+i][i]+a[j]); } } int minn=0x3f3f3f3f; for(int i=1;i<=n;i++) minn=min(minn,dp[n][i]); cout<<minn; return 0; }

    信息

    ID
    2843
    时间
    1000ms
    内存
    256MiB
    难度
    6
    标签
    递交数
    32
    已通过
    11
    上传者