彩世界开奖app官网-彩世界平台官方网址(彩票平台)
做最好的网站
来自 前端技术 2019-12-07 08:19 的文章
当前位置: 彩世界开奖app官网 > 前端技术 > 正文

【斜优DP】bzoj4518-Sdoi二〇一四道路【彩世界平台

3、switch 品质优于if...else if...

Description

Pine伊始了从S地到T地的征程。

从S地到T地的路能够划分成n段,相邻两段路的分界点设有平息站。

Pine布置用m天达到T地。除第m天外,每一日晚间Pine都必须在休憩站过夜。所以,生龙活虎段路必得在同一1月走完。

Pine希望每日走的路长度尽可能左近,所以她愿意每日走的路的长短的方差尽大概小。

扶助Pine求出最小方差是有个别。

设方差是v,可以证明,v×m^2是贰个卡尺头。为了防止精度基值误差,输出结果时输出v×m^2。

大批量运用if(x === null卡塔尔{ x={} } 优于x=x||{}

风流倜傥、斜率优化DP与核定单调性

此地浅显(並且不稳重)地印证一下题目中的多少个名词:

斜率优化DP:状态转移方程形如f[i]=min/max{f[k] (x[i]-x[k])^y}的一类DP问题;

决策单调性:若对于状态i,有仲裁t<k,且k优于t,则对此随便状态v>i,存在决策k优于t。

对上述两条表达的不严俊与模糊之处,下文将结合难题给出(依然不严俊且模糊的)一定水平上的表达。

1、二级制操作优于Math

四、代码达成

实质上f数组没有必要开二维,因为大家每便只用到了f[i][j]和f[i][j-1],所以能够再压去风度翩翩维。但为便于清楚,博主仍使用二维f数组。

彩世界平台官方网址 1彩世界平台官方网址 2

 1 #include<cstdio>
 2 const int MAXN=3e3 10;
 3 int n,m;
 4 int s[MAXN];
 5 int q[MAXN],l,r;
 6 long long f[MAXN][MAXN];
 7 double count_y(int k,int j){return f[k][j-1] s[k]*s[k];}
 8 double count(int t,int k,int j){return (count_y(t,j)-count_y(k,j))/(s[t]-s[k]);}
 9 int main()
10 {
11     scanf("%d%d",&n,&m);
12     for(int i=1;i<=n;  i)
13     {
14         int x;
15         scanf("%d",&x);
16         s[i]=s[i-1] x;
17     }
18     for(int i=1;i<=n;  i)f[i][1]=s[i]*s[i];
19     for(int j=2;j<=m;  j)
20     {
21         l=1,r=1;
22         for(int i=1;i<=n;  i)
23         {
24             while(l<r&&count(q[l],q[l 1],j)<2*s[i])  l;
25             int temp=q[l];
26             f[i][j]=f[temp][j-1] (s[i]-s[temp])*(s[i]-s[temp]);
27             while(l<r&&count(q[r],i,j)<count(q[r-1],q[r],j))--r;
28             q[  r]=i;
29         }
30     }
31     printf("%lldn",f[n][m]*m-(long long)s[n]*s[n]);
32     return 0;
33 }

bzoj4518-征途

弱弱地说一句,本妖芋码字也不易于,转发请证明出处

//函数向下取整
        console.log(Math.floor(8.9));
        //二进制向下取整
        console.log(8.9>>0);

Sample Input

5 2
1 2 5 8 6

2、慎用||

Input

第黄金时代行四个数 n、m。

其次行 n 个数,表示 n 段路的尺寸

如:

Sample Output

36

HINT

1≤n≤3000,保障从 S 到 T 的总行程不当先 30000

附上原题链接→_→Problem 4518. -- [Sdoi2016]征途

Output

 贰个数,最小方差乘以 m^2 后的值

三、标题深入分析

为实惠书写,作出如下约定:

a[i]:标题给出的第i段路程长;

sum[i]:路程长的前缀和;

x[i]:第i天走过的里程总和。

依据题意,每一天走过的行程长度的方差表示为:

彩世界平台官方网址 3

整理得:

彩世界平台官方网址 4

分明,由于上式中唯有x[i]为变量,难点自然转化成了求∑x2[i]的细微值。

统筹景况转移方程如下:

彩世界平台官方网址 5

其中,f[i][j]表示前j天渡过前i段路程,每一日路程平方和的小小值。

观测到状态转移方程的格局为主切合斜率优化DP的花样,于是固定j,并:

令t<k:

当t优于k:

彩世界平台官方网址 6

整理得:

彩世界平台官方网址 7

同理,当k优于t:

彩世界平台官方网址 8

由于s[i]干燥依次增加,故若在状态i下有k优于t,则对此狂妄v>i,存在k优于t。

这就意味着,假使大家在有些状态时开采决策k优于t,我们便再也无需拜候决策t了。那就应用决策单调性,到达了下滑时间复杂度的功效。

别的,仍然为能够开采,在有个别状态下的灵光决策变成了叁个下凸壳。粗略注脚如下:

设坐标系中存在点A、B、C,其横坐标单调依次增加,其对应决策简单的称呼为决策A、B、C

当B的纵坐标大于A、C的纵坐标(产生了叁个上凸壳):

  1. 2s[i]<kBC:决策A优于决策B,决策B优于决策C,故决策A最优;
  2. kBC<2s[i]<kAB:决策A优于决策B,决策C优于决策B,故决策A或C最优;
  3. 2s[i]>kAB:决策B优于决策A,决策C优于决策B,故决策C最优。

以上,造成上凸壳时,决策B超级小概变成最优决策,故删去点B,上凸壳性质被毁坏;

同理,当B的纵坐标小于A、C的纵坐标(产生了一个下凸壳):

  1. 2s[i]<kAB:决策A优于决策B,决策B优于决策C,故决策A最优;
  2. kAB<2s[i]<kBC:决策B优于决策A,决策B优于决策C,故决策B最优;
  3. 2s[i]>kBC:决策B优于决策A,决策C优于决策B,故决策C最优。

故变成下凸壳时,全部决策均有一点都不小可能率变为最优决策。

那般,大家用叁个双端队列就会保养或然成为最优决策的的仲裁,始终保险队首元素最优,队列满意下凸壳性质。

二、题目

本文由彩世界开奖app官网发布于前端技术,转载请注明出处:【斜优DP】bzoj4518-Sdoi二〇一四道路【彩世界平台

关键词: 动态规划