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

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

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

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

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

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

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

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

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

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

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

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

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

推导过程:

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

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

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

$$\frac{dE}{dg}=(s_i\times k_i\times [2\times (\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$ 的图像。

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

【NOI2012】骑行川藏的更多相关文章

  1. bzoj 2876: [Noi2012]骑行川藏 拉格朗日数乘

    2876: [Noi2012]骑行川藏 Time Limit: 20 Sec  Memory Limit: 128 MBSec  Special JudgeSubmit: 1033  Solved: ...

  2. 2876: [Noi2012]骑行川藏 - BZOJ

    Description 蛋蛋非常热衷于挑战自我,今年暑假他准备沿川藏线骑着自行车从成都前往拉萨.川藏线的沿途有着非常美丽的风景,但在这一路上也有着很多的艰难险阻,路况变化多端,而蛋蛋的体力十分有限,因 ...

  3. bzoj2876 [Noi2012]骑行川藏

    Description 蛋蛋非常热衷于挑战自我,今年暑假他准备沿川藏线骑着自行车从成都前往拉萨.川藏线的沿途有着非常美丽的风景,但在这一路上也有着很多的艰难险阻,路况变化多端,而蛋蛋的体力十分有限,因 ...

  4. bzoj2876 [NOI2012]骑行川藏(拉格朗日乘数法)

    题目描述 蛋蛋非常热衷于挑战自我,今年暑假他准备沿川藏线骑着自行车从成都前往拉萨.川藏线的沿途有着非常美丽的风景,但在这一路上也有着很多的艰难险阻,路况变化多端,而蛋蛋的体力十分有限,因此在每天的骑行 ...

  5. [BZOJ2876][NOI2012]骑行川藏(拉格朗日乘数法)

    题目:http://www.lydsy.com:808/JudgeOnline/problem.php?id=2876 分析:就是要求约束条件下函数的极值,于是拉格朗日乘数列方程,发现化简后的关于vi ...

  6. 【BZOJ】2876: [Noi2012]骑行川藏

    题意 给出\(s_i, k_i, v_i', E\),满足\(\sum_{i=1}^{n} k_i s_i ( v_i - v_i' )^2 \le E, v_i > v_i'\),最小化$ \ ...

  7. NOI2012 骑行川藏

    http://www.lydsy.com/JudgeOnline/problem.php?id=2876 表示完全不会...... 还是跪拜大神吧 http://www.cnblogs.com/Ger ...

  8. [NOI2012] 骑行川藏 | 求导 二分

    一个能看的题解!预备知识只有高中数学的[导数].不用什么偏导数/拉格朗日乘子法之类的我看不懂的东西( •̀∀•́ )! 如果你不知道什么是导数,可以找本高中数学选修2-2来看一下!看第一章第1.2节就 ...

  9. [NOI2012]骑行川藏(未完成)

    题解: 满分又是拉格朗日啥的 以后再学 自己对于n=2猜了个三分 然后对拍了一下发现是对的

  10. BZOJ2876 [Noi2012]骑行川藏 【拉格朗日乘数法】

    题目链接 BZOJ 题解 拉格朗日乘数法 拉格朗日乘数法用以求多元函数在约束下的极值 我们设多元函数\(f(x_1,x_2,x_3,\dots,x_n)\) 以及限制\(g(x_1,x_2,x_3,\ ...

随机推荐

  1. TLint for 虎扑体育应用源码项目

    虎扑非官方客户端TLint全新Material Design设计,简洁美观支持论坛全部操作,浏览帖子.点亮.回复.引用.收藏等多项个性化设置(不同主题,不同阅读模式) TLint For 虎扑体育 更 ...

  2. 添加/删除 windows下Git右键菜单

    从网上搜索了些方法,总结一下 不显示右键菜单: 方法1: 安装的时候选择不添加右键菜单. 方法2(绝对有效): 运行CMD Windows 64 输入命令(地址为git安装地址) cd "C ...

  3. (七)maven之阿里云镜像提高jar下载速度

    阿里云国内镜像,提高jar包下载速度 镜像 maven默认会从中央仓库下载包,但是下载过几次就知道,下载速度非常慢.镜像就相当于是中央仓库的一个副本,内容和中央仓库完全一样,而且同时也能保证下载速度, ...

  4. ARC和MRC混合模式下的编译问题

    在一个支持ARC (Automatic Reference Counting)的项目中,有时候需要禁止其中几个文件使用ARC模式编译(比如你用了第三方不支持ARC的类库).这时就要点击工程文件,在ta ...

  5. shell脚本,录制和回放终端的小工具script。

    action.log和time.log这两个配置文件被当做script命令的参数.这两个文件可以随便命名.这里用time.log和action.log.其中time.log用于存储时序信息,描述每一个 ...

  6. javaEE(16)_Servlet监听器

    一.监听器原理 1.监听器就是一个实现特定接口的普通java程序,这个程序专门用于监听一个java对象的方法调用或属性改变,当被监听对象发生上述事件后,监听器某个方法将立即被执行. 2.监听器典型案例 ...

  7. NSLayoutConstraint.constraintsWithVisualFormat详解,以及AlignAllCenterY

    NSLayoutConstraint.constraintsWithVisualFormat详解,以及AlignAllCenterY 转载2015-07-08 18:02:02 鉴于苹果官方文档的解释 ...

  8. 对于WebAssembly编译出来的.wasm文件js如何调用

    WebAssembly也叫浏览器字节码技术 这里就不过多的解释了网上很多介绍 主要是让大家知道在js里面如何调用执行它,我之前看WebAssemblyAPI时候反正是看得一脸懵逼 也是为了大家能更快的 ...

  9. RN踩坑

    使用夜神 使用夜神作为模拟器,这个模拟器启动就会监听62001端口. 开发工具与模拟器的通信都是通过adb.夜神模拟器的安装目录/bin下有一个adb.exe,android sdk tools下也有 ...

  10. js解析器

    1>js的预解析 找var function 参数等 所有的变量,在正式运行代码前,都提前赋了一个值:未定义 所有的函数,在正式运行代码前,都是整个函数块. 遇到重名的:只留一个 如果变量与函数 ...