2021蓝桥杯----最小权值(区间dp解法)

时间:2021-08-14
本文章向大家介绍2021蓝桥杯----最小权值(区间dp解法),主要包括2021蓝桥杯----最小权值(区间dp解法)使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

直接暴力区间dp,可以出来结果只是时间需要长点,需要16秒

结果:2653631372

#include<iostream>
#include<cstring>
using namespace std;
typedef long long ll;
ll f[2022][2022];

int main(void)
{
    memset(f,0x3f3f3f3f,sizeof f);
    for(int len = 1;len<=2021;len++)
    {
        for(int l = 1;l+len-1<=2021;l++)
        {
            int r = l+len-1;
            if(len == 1)f[l][r] = 1;
            else
            {
                for(int k = l;k<=r;k++)
                {
                    ll left = k == l?0:f[l][k-1];
                    ll right = k==r?0:f[k+1][r];
                    f[l][r] = min(f[l][r],1+2*left+3*right+(k-l)*(k-l)*(r-k));
                    //cout << "f("<<l<<" "<<r<<" ):"<<f[l][r]<<endl;
                }
            }
        }
    }
    cout << f[1][2021];
}
计算机小白记录学习过程,喜欢就点个推荐和关注吧O(∩_∩)O哈哈~

原文地址:https://www.cnblogs.com/loliconsk/p/15140611.html