题目
https://www.nowcoder.com/acm/contest/4/B
题意
有n条南北流向的河并列排着,水流速度是v,现在你需要从西岸游到东岸,总共T个时间,你的游泳速度是u,问东岸的上岸点和西岸的下水点之间距离最大是多少?
分析
其实就是求南北方向位移的最大值
如果给定在一条河里的游泳时间,那么当然可以算出在这条河里的位移最大值
具体的对于第i条河来说,将游泳速度u分成水平方向的$x$和竖直方向的$\sqrt{u^2-x^2}$
那么容易整理出最大位移$f_i(t)=vt+\sqrt{u^2t^2-w_i^2}$
这个问题最难的就是时间分配,即如何将T分配成$t_1,t_2,..,t_n$满足$t_1+t_2+...+t_n=T$,并且使得$S(t_1,t_2,..,t_n)=f_1(t_1)+f_2(t_2)+..+f_n(t_n)$最大
这是一个多元函数求极值的问题,考虑拉格朗日乘数法
构造拉格朗日函数$L(t_1,t_2,..,t_n,\lambda)=f_1(t_1)+f_2(t_2)+..+f_n(t_n)+\phi(t_1,t_2,..,t_n)$,其中$\phi(t_1,t_2,..,t_n)=t_1+t_2+...+t_n-T$
只需要求这个L的各个偏导,令其为0就行了
于是我们得到了重要的结论——${f_1}'(t_1)={f_2}'(t_2)=...={f_n}'(t_n)$
我们可以去二分这个导数值mid,然后去反解$t_i$
根据$\sum {t_i}$和$T$的大小来改变mid的值
注意到能二分导数值反解$t_i$的情况当且仅当$f_i$是单调的,但${f_1}'(t_1)={f_2}'(t_2)=...={f_n}'(t_n)$这个性质却和函数表达式无关
Wannafly模拟赛2 B river(拉格朗日乘数法)的更多相关文章
-
[Math &; Algorithm] 拉格朗日乘数法
拉格朗日乘数法(Lagrange Multiplier Method)之前听数学老师授课的时候就是一知半解,现在越发感觉拉格朗日乘数法应用的广泛性,所以特意抽时间学习了麻省理工学院的在线数学课程.新学 ...
-
《University Calculus》-chaper12-多元函数-拉格朗日乘数法
求解条件极值的方法:拉格朗日乘数法 基于对多元函数极值方法的了解,再具体的问题中我们发现这样一个问题,在求解f(x,y,z)的极值的时候,我们需要极值点落在g(x,y,z)上这种对极值点有约束条件,通 ...
-
bzoj2876 [NOI2012]骑行川藏(拉格朗日乘数法)
题目描述 蛋蛋非常热衷于挑战自我,今年暑假他准备沿川藏线骑着自行车从成都前往拉萨.川藏线的沿途有着非常美丽的风景,但在这一路上也有着很多的艰难险阻,路况变化多端,而蛋蛋的体力十分有限,因此在每天的骑行 ...
-
ML(附录4)——拉格朗日乘数法
基本的拉格朗日乘子法(又称为拉格朗日乘数法),就是求函数 f(x1,x2,...) 在 g(x1,x2,...)=C 的约束条件下的极值的方法.其主要思想是引入一个新的参数 λ (即拉格朗日乘子),将 ...
-
CodeChef TWOROADS(计算几何+拉格朗日乘数法)
题面 传送门 简要题意:给出\(n\)个点,请求出两条直线,并最小化每个点到离它最近的那条直线的距离的平方和,\(n\leq 100\) orz Shinbokuow 前置芝士 给出\(n\)个点,请 ...
-
BZOJ3775: 点和直线(计算几何+拉格朗日乘数法)
题面 传送门 题解 劲啊-- 没有和\(Claris\)一样推,用了类似于\(Shinbokuow\)推已知点求最短直线的方法,结果\(WA\)了好几个小时,拿\(Claris\)代码拍了几个小时都没 ...
-
BZOJ2876 [Noi2012]骑行川藏 【拉格朗日乘数法】
题目链接 BZOJ 题解 拉格朗日乘数法 拉格朗日乘数法用以求多元函数在约束下的极值 我们设多元函数\(f(x_1,x_2,x_3,\dots,x_n)\) 以及限制\(g(x_1,x_2,x_3,\ ...
-
拉格朗日乘数法 和 KTT条件
预备知识 令 \(X\) 表示一个变量组(向量) \((x_1, x_2, \cdots, x_n)\) 考虑一个处处可导的函数 \(f(X)\), 为了方便描述, 这里以二元函数为例 对于微分, 考 ...
-
CodeForces - 813C The Tag Game(拉格朗日乘数法,限制条件求最值)
[传送门]http://codeforces.com/problemset/problem/813/C [题意]给定整数a,b,c,s,求使得 xa yb zc值最大的实数 x,y,z , 其中x ...
随机推荐
-
Oracle Standard Error 列表
今天,我特意从网上找了一些,以及自己平时总结的,关于错误编号和说明,平时我们在写项目的时候,往往是可能会出现下面这些错误,例如:违反唯一约束,无效的会话ID,等等.希望对大家有点帮助!可以看看,如果有 ...
-
JAVA 各种数值类型最大值和最小值 Int, short, char, long, float,&;nbs
转载地址:http://blog.sina.com.cn/s/blog_5eab3d430101fdv6.html 代码片段: fmax = Float.MAX_VALUE; fmin = Float ...
-
mysql中 group_concat长度限制
//这个函数有长度限制,上了多次当.默认长度1024长度. select group_concat(id) from table; 要彻底修改,在MySQL配置文件(my.ini)中加上 group_ ...
-
转 Caffe学习系列(4):激活层(Activiation Layers)及参数
在激活层中,对输入数据进行激活操作(实际上就是一种函数变换),是逐元素进行运算的.从bottom得到一个blob数据输入,运算后,从top输入一个blob数据.在运算过程中,没有改变数据的大小,即输入 ...
-
Trouble shooting(问题解决):centos 7 gnome show someting has gone wrong.
centos 7 升级 内核 3.10,startx启动不了了.进界面也是oh,no!someting has gone wrong . 参见帖子:http://bbs.csdn.net/topics ...
-
菜鸟学SSH(七)——Spring jar包详解
Struts.Hibernate.Spring这类的框架给我们开发带来非常大的好处,让我们更加快速.有效的开发.所以我们在开发中通常都会用到各种框架,每个框架都有很多jar包,每个jar都有各自不同的 ...
-
async/await的一些用法
普通函数 string Func() { string x = X(); string y = Y(); string z = Z(); return x + y + z; } X(), Y(), Z ...
-
Python3.5 Keras-Theano(含其他库)windows 安装环境
https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-4.2.0-Windows-x86.execonda --version ...
-
java的一些基本格式
书写方法的格式: 修饰符 返回值 方法名 方法体 public int/void addNumber(参数) { ...
-
从javaweb项目学习
1.sql语句 在insert语句中需要插入查询出来的值. Insert into a (a1,a2,a3) values (1,select num from b where id=1,3) 这样写 ...