• AcWing-282 石子合并


    链接:https://www.acwing.com/problem/content/284/

    思路参考带环的石子合并,代码除了多了个循环一模一样

    代码

     1 #include<bits/stdc++.h>
     2 #define inf 0x3f3f3f3f
     3 using namespace std;
     4 typedef long long ll;
     5 typedef long double ld;
     6 const int M = int(1e6)*2 + 5;
     7 const int mod = 10056;
     8 inline int lowbit(int x) {
     9     return x & (-x);
    10 }
    11 
    12 int a[M];
    13 int dp[1050][1050];
    14 int sum[M];
    15 int main()
    16 {
    17     memset(dp,inf,sizeof(dp));
    18     
    19     int n;cin>>n;
    20     for(int i=1;i<=n;i++){
    21         cin>>a[i];
    22         sum[i]=sum[i-1]+a[i];
    23         dp[i][i]=0;
    24     }
    25 
    26     for(int len=2;len<=n;len++){
    27         for(int l=1;l<=n-len+1;l++){
    28             int r=l+len-1;
    29             for(int k=l;k<r;k++){
    30                 dp[l][r]=min(dp[l][r],dp[l][k]+dp[k+1][r]);
    31             }
    32             dp[l][r]+=(sum[r]-sum[l-1]);
    33         }
    34     }
    35 
    36     cout<<dp[1][n]<<endl;
    37     return 0;
    38 }

    备注AcWing真的是一个很好的网站,吹爆

  • 相关阅读:
    SDN作业(4)
    SDN作业(3)
    第一次个人编程作业
    SDN作业(2)
    SDN作业(1)
    第一次博客作业
    浅谈闭包
    预编译And作用域链
    定时器
    window事件
  • 原文地址:https://www.cnblogs.com/harutomimori/p/11288589.html
Copyright © 2020-2023  润新知