zoukankan      html  css  js  c++  java
  • 【NOI2012】骑行川藏

    获得成就:第一次在信竞做神仙数学题

    先放个前言,$OI$ 出大型数学题还是比较麻烦的,因为主要是考你数学推导 / 手算式子,你算出来之后把公式套个板子,就得到结论——$OI$ 的大型数学题的代码都是板子……

    然后再放一些前置物理知识——功的计算公式:$E(W)=F imes s$($s$ 表示路程)。

    首先,我们得知道题目隐含条件,就是人速不能小于等于风速,否则总时间就是无穷大了。

    我们可以先给每段路随便分配个速度或时间,我这里分配的是时间。

    然后时间又可以先分配为无限小或无限大,我这里分配成无限小,也就是 $1 imes 10^{-7} imes frac{1}{n}$(不能 $le 0$)。

    这样我们就可以算出每段的人速($v_i=frac{s_i}{t_i}$)。

    也可以算出人总共做了多少功。

    这时总功可能会超过限制。我们考虑增加人在某一段上骑行所用的时间,这样那一段的速度就会减小,力和功也随之减小。

    这看起来很像个贪心。但做过 $dp$ 的人都知道,一步的最优选择不代表全局的最优选择。

    如果要证明贪心是对的(即每一步的最优选择都属于全局的最优选择),我们得证明时间的导数在其有效区间中是单调上升的(这个有效区间就是 人速 $gt$ 风速的部分)。

    也就是说重点是把功的式子 $E=s_i imes k_i imes (frac{s_i}{t_i}-v'_i)$ 求导数。

    它的导数是 $$E'=(s_i imes k_i imes [2 imes (frac{s_i}{t_i}-v'_i)] imes (frac{s_i}{t_i^2})$$

    推导过程:

    套用导数公式 $$frac{dE}{dx}=frac{dE}{dg} imes frac{dg}{dx}$$

    其意义是求 $E$ 以 $x$ 为底的导数,那么在这里 $dx=t_i^{-1}$。

    可知如果设 $dg=frac{s_i}{t_i}-v'_i$,则根据一些乱七八糟的导数公式可得

    $$frac{dE}{dg}=(s_i imes k_i imes [2 imes (frac{s_i}{t_i}-v'_i)]$$

    由于 $v'_i$ 是给定的常数,它的导数值为 $0$,则 $$frac{dg}{dx}=frac{s_i}{t_i^2}$$

    推导完毕。

    不难发现这个导数式子是一个关于 $t_i$ 的 $-3$ 次方程,也就是 $t_i^{-1}$ 的 $3$ 次方程。而方程的图像状态只跟最高次数有关,所以它的图像大概就是 $3$ 次函数的样子:

    然后我们考虑一下合法之前说过的有效区间在哪里(就是哪一段人速大于风速)。

    但是我们发现横坐标好像有点碍事。我们发现总长是不变的,横坐标定义为时间的负 $x$ 次方,就跟定义为人速的正 $x$ 次方的趋势是一致的,也就是说两者画出来都是如上的三次方图像。

    如果没明白,可以理解为把横纵坐标同乘上一个常数——$s_i$,然后横坐标就变成人速 $v_i$ 了,而原图像只是在纵方向上伸缩了。这样我们就得到了横坐标为 $v_i$ 的图像。

    进一步地,我们还可以把横坐标再减去一个

  • 相关阅读:
    HDU
    HDU
    HDU
    HDU
    POJ
    POJ
    POJ
    hdu-4745 Two Rabbits
    蓝桥杯历年试题 小朋友排队
    蓝桥杯历年试题 矩阵翻硬币
  • 原文地址:https://www.cnblogs.com/scx2015noip-as-php/p/10012565.html
Copyright © 2011-2022 走看看