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的主要内容,如果未能解决你的问题,请参考以下文章

JSOI2016病毒感染

[JSOI2016]病毒感染[dp]

Luogu5772 [JSOI2016]位运算

Luogu P4323 [JSOI2016]独特的树叶

JSOI2016扭动的回文串

[Luogu 1197] JSOI2008 星球大战