话说这题很久以前就写过,然后好像一直忘了写题解……

以前看这道题还觉得挺难的,现在觉得好水

首先朴素的想法肯定是动归

f[i,j]表示到处理到第i根电线,最终高度为j的最小花费

f[i,j]:=min(f[i-1,k]+sqr(h[i]-j)+abs(j-k)*c) (h[i]<=j<=max) max为原来所有电线最高的高度

但这个会超时,我们就要想办法优化;

考虑这样一个方程式f[i,j]:=min(f[i-1,k]+sqr(h[i]-j)+(j-k)*c);

我们很容易用O(max)的时间完成转移(好像之前有过例子);

但这个方程式多了一个绝对值,根据数学上的思想,我们就去绝对值讨论呗;

容易整理得到

f[i,j]=min(min(f[i-1,k]-k*c+j*c) j>=k, min(f[i-1,k]+k*c-j*c) j<=k)+sqr(h[i]-j)

这样不难想到,令

tal[j]=min(f[i-1,k]+k*c)  k∈[j,max];

sho[j]=min(f[i-1,k]-k*c)  k∈[h[i-1],j]

tal[j]表示上一根电线杆状态高度大于当前电线杆高度j高的花费中的最小值

sho[j]表示上一根电线杆状态高度小于当前电线杆高度j高的花费中的最小值

然后弄弄就出来了

 const hmax=;
      inf=;
var h:array[..] of longint;
    sho,tal:array[..] of longint;
    f:array[..,..] of longint;
    i,k1,k2,n,m,j,c,ans:longint;
function min(a,b:longint):longint;
  begin
    if a>b then exit(b) else exit(a);
  end; begin
  readln(n,c);
  for i:= to n do
  begin
    readln(h[i]);
    if h[i]>m then m:=h[i];
  end;
  h[n+]:=h[i];
  k1:=;
  k2:=;
  for i:=h[] to m do
    f[,i]:=sqr(i-h[]);
  for i:= to n do
  begin
    k1:=k1 xor ;
    k2:=k2 xor ;
    for j:= to m do
    begin
      tal[j]:=inf;
      sho[j]:=inf;
      f[k2,j]:=inf;
    end;
    tal[m]:=f[k1,m]+c*m;
    for j:=m- downto h[i-] do
      tal[j]:=min(tal[j+],f[k1,j]+c*j);
    sho[h[i-]]:=f[k1,h[i-]]-c*h[i-];
    for j:=h[i-]+ to m do
      sho[j]:=min(sho[j-],f[k1,j]-c*j);
    for j:=h[i] to m do
      if j<h[i-] then
        f[k2,j]:=min(f[k2,j],tal[h[i-]]-c*j+sqr(j-h[i]))  //注意细节,这时候上一根电线杆不存在比这根矮的状态
      else
        f[k2,j]:=min(f[k2,j],min(tal[j]-c*j,sho[j]+c*j)+sqr(j-h[i]));
  end;
  ans:=inf;
  for i:=h[n] to m do
    ans:=min(ans,f[k2,i]);
  writeln(ans);
end.

bzoj1705的更多相关文章

  1. BZOJ-1705 Longge的问题 一维GCD SUM 乱搞+质因数分解+...

    2705: [SDOI2012]Longge的问题 Time Limit: 3 Sec Memory Limit: 128 MB Submit: 1871 Solved: 1172 [Submit][ ...

  2. [bzoj1705] [Usaco2007 Nov]Telephone Wire 架设电话线

    正常DP.. f[i][j]表示前i个电线杆,把第i个电线杆高度改为j的最少总费用.设原来电线杆高度为h[] f[i][j]=min{ f[i-1][k]+C*|j-k|+(j-h[i])^2,(k& ...

  3. 【bzoj1705】[Usaco2007 Nov]Telephone Wire 架设电话线 dp

    题目描述 最近,Farmer John的奶牛们越来越不满于牛棚里一塌糊涂的电话服务 于是,她们要求FJ把那些老旧的电话线换成性能更好的新电话线. 新的电话线架设在已有的N(2 <= N < ...

  4. 【动态规划】bzoj1705: [Usaco2007 Nov]Telephone Wire 架设电话线

    可能是一类dp的通用优化 Description 最近,Farmer John的奶牛们越来越不满于牛棚里一塌糊涂的电话服务 于是,她们要求FJ把那些老旧的电话线换成性能更好的新电话线. 新的电话线架设 ...

  5. bzoj1705[Usaco2007 Nov]Telephone Wire 架设电话线(dp优化)

    1705: [Usaco2007 Nov]Telephone Wire 架设电话线 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 441  Solved: ...

  6. 【刷题记录】BZOJ-USACO

    接下来要滚去bzoj刷usaco的题目辣=v=在博客记录一下刷题情况,以及存一存代码咯.加油! 1.[bzoj1597][Usaco2008 Mar]土地购买 #include<cstdio&g ...

  7. bzoj Usaco补完计划(优先级 Gold>Silver>资格赛)

    听说KPM初二暑假就补完了啊%%% 先刷Gold再刷Silver(因为目测没那么多时间刷Silver,方便以后TJ2333(雾 按AC数降序刷 ---------------------------- ...

随机推荐

  1. 线程间通信--生产者消费者 升级版JDK5

    import java.util.concurrent.locks.*; /*1.新的解锁,上锁操作,据说是jdk5.0升级版,以前的枷锁,解锁都是隐藏的,默认的,现在变成显式 2.新的异常处理方式  ...

  2. 基于SMB共享文件夹的上传于下载

    需要用到的jar包   http://pan.baidu.com/s/1skQFk77 1.首先在一台电脑上设置共享文件夹 ----上传下载的方法类 package com.strongit.tool ...

  3. 15_CXF和Spring开发手机号查询网站

    [整体分析] [生成客户端代码] wsdl网址: http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx 生成的客户端代码 [工程截图(已拷入客户端 ...

  4. normalize.css介绍

    Normalize.css 只是一个很小的CSS文件,但它在默认的HTML元素样式上提供了跨浏览器的高度一致性.相比于传统的CSS reset,Normalize.css是一种现代的.为HTML5准备 ...

  5. Yii表单模型使用及以数组形式提交表单数据

    按Yii文档里的描述,Yii在处理表单的一般过程是: 创建表单对应的模型类,设置字段验证规则 创建表单提交对应的action,处理提交的内容 在视图中创建表单form 在刚刚的一个小项目里,想使用aj ...

  6. MySQL大数据量快速分页实现

    一般刚开始学SQL语句的时候,会这样写 代码如下:  SELECT * FROM table ORDER BY id LIMIT 1000, 10; 但在数据达到百万级的时候,这样写会慢死 代码如下: ...

  7. hdu 3591 The trouble of Xiaoqian

    hdu 3591  The trouble of Xiaoqian 题意:xiaoqi要买一个T元的东西,当前的货币有N种,xiaoqi对于每种货币有Ci个:题中定义了最小数量即xiaoqi拿去买东西 ...

  8. PL/SQL — 显式游标

    一.游标的相关概念及特性 1.定义 通过游标方式定位到结果集中某个特定的行,然后根据业务需求对该行进行相应特定的操作. 2.分类 显示游标: 用户自定义游标,用于处理select语句返回的多行数据. ...

  9. cf Round 601

    A.The Two Routes(BFS) 给出n个城镇,有m条铁路,铁路的补图是公路,汽车和火车同时从1出发,通过每条路的时间为1,不能同时到达除了1和n的其它点,问他们到达n点最少要用多长时间. ...

  10. ctf总结

    在过去的一个学期中,草人在西普学院还有一些其他安全夺旗网站上刷了一些题,草人我是菜鸟一个,刚开始很是苦恼,所以经历过以后希望将之分享给一起学习安全的同学,目的呢是希望以后学习的人能尽快理清学习思路,进 ...