luogu P5774 [JSOI2016]病毒感染 线性 dp
Posted 晴屿
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了luogu P5774 [JSOI2016]病毒感染 线性 dp相关的知识,希望对你有一定的参考价值。
太难了,参考题解:https://www.luogu.com.cn/blog/An-Fly/soluti-p5774
#include<iostream>
#include<cstring>
#define ll long long
using namespace std;
const int N=3e3+10;
ll s[N],g[N][N],dp[N],a[N];
ll Sum(int l,int r)
{
return s[r]-s[l-1];
}
int main()
{
int n;
cin>>n;
for(int i=1; i<=n; i++)
{
cin>>s[i];
a[i]=s[i];
s[i]+=s[i-1];
}
for(int i=1; i<=n; i++)
for(int j=i-1; j; j--)
g[i][j]=g[i][j+1]+Sum(j+1,i)+min(3LL*(i-j)*a[j],Sum(j+1,i));
memset(dp,0x3f,sizeof dp);
dp[0]=0;
for(int i=1; i<=n; i++)
for(int j=0; j<i; j++)
dp[i]=min(dp[i],dp[j]+g[i][j+1]+Sum(i+1,n)*((i-(j+1))*3+i-(j+1)+2));
cout<<dp[n]<<endl;
return 0;
}
以上是关于luogu P5774 [JSOI2016]病毒感染 线性 dp的主要内容,如果未能解决你的问题,请参考以下文章