zoukankan      html  css  js  c++  java
  • APIO2010特别行动队(单调队列、斜率优化)

    其实这题一看知道应该是DP,再一看数据范围肯定就是单调队列了。

    不过我还不太懂神马单调队列、斜率优化……

    附上天牛的题解:http://www.cnblogs.com/neverforget/archive/2012/04/19/2456483.html

     1 var f,g:array[0..1000050] of int64;
     2     s,q:array[0..1000050] of longint;
     3     a,b,c,n,i,h,t,x:longint;
     4     bestk:double;
     5 procedure init;
     6  begin
     7  readln(n);
     8  readln(a,b,c);
     9  s[0]:=0;
    10  for i:=1 to n do
    11   begin
    12   read(x);
    13   s[i]:=s[i-1]+x;
    14   end;
    15  end;
    16 function k(x,y:longint):double;
    17  begin
    18  exit(double(g[y]-g[x])/(s[y]-s[x]));
    19  end;
    20 procedure main;
    21  begin
    22  f[0]:=0;h:=1;t:=1;q[1]:=0;
    23  for i:=1 to n do
    24   begin
    25   bestk:=double(2*a*s[i]);
    26   while (h<t) and (k(q[h],q[h+1])>=bestk) do inc(h);
    27   f[i]:=int64(f[q[h]])+int64(a)*int64(s[i]-s[q[h]])*int64(s[i]-s[q[h]])
    28        +int64(b)*int64(s[i]-s[q[h]])+int64(c);
    29   g[i]:=int64(f[i])+int64(a)*int64(s[i])*int64(s[i])-int64(b)*int64(s[i]);
    30   while (h+1<=t) and (k(q[t],i)>k(q[t-1],q[t])) do dec(t);
    31   inc(t);
    32   q[t]:=i;
    33   end;
    34  end;
    35 procedure print;
    36  begin
    37  writeln(f[n]);
    38  end;
    39 begin
    40  init;
    41  main;
    42  print;
    43 end.                                                                                  
    View Code
  • 相关阅读:
    Feature euerka Consul zookeeper etcd
    mysql配置参数
    镜像网站
    携程Apollo分布式配置中心部署以及使用
    linux 基础知识 之基础网络
    linux 基础知识 之基础系统管理
    linux安全
    java.多态
    java.抽象、接口
    使用Vscode
  • 原文地址:https://www.cnblogs.com/zyfzyf/p/3773965.html
Copyright © 2011-2022 走看看