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哈哈~

浙公网安备 33010602011771号