[拉格朗日乘数法 二分] BZOJ 2876 [Noi2012]骑行川藏
来源:互联网 发布:找游戏的软件 编辑:程序博客网 时间:2024/04/30 03:52
拉格朗日乘数法 ACdreamers
[Math & Algorithm] 拉格朗日乘数法
首先那个能量肯定是要花完的,就变成一个限制了,乘上拉格朗日乘子,求偏导,变成了
发现
#include<cstdio>#include<cstdlib>#include<algorithm>#include<iostream>#include<cmath>using namespace std;typedef long double ld;const int N=10005;const ld eps=1e-12;int n; ld E,s[N],k[N],V[N];ld v[N];inline ld Calc(ld mid){ ld ret=0; for (int i=1;i<=n;i++){ ld L=max(V[i],(ld)0.0),R=1e9,MID; while (R-L>eps){ MID=(L+R)/2; if (2*mid*k[i]*MID*MID*(MID-V[i])>1.0) R=MID; else L=MID; } v[i]=(L+R)/2; ret+=k[i]*s[i]*(v[i]-V[i])*(v[i]-V[i]); } return ret;}int main(){ freopen("t.in","r",stdin); freopen("t.out","w",stdout); cin>>n>>E; for (int i=1;i<=n;i++) cin>>s[i]>>k[i]>>V[i]; ld L=0,R=1e9,MID; while (R-L>eps){ ld ret=Calc(MID=(L+R)/2); if (ret>=E) L=MID; else R=MID; } Calc((L+R)/2); ld ans=0; for (int i=1;i<=n;i++) ans+=s[i]/v[i]; printf("%.10lf\n",(double)ans); return 0;}
阅读全文
0 0
- [拉格朗日乘数法 二分] BZOJ 2876 [Noi2012]骑行川藏
- bzoj 2876: [Noi2012]骑行川藏 二分+拉格朗日乘数法
- bzoj2876 [Noi2012]骑行川藏 [二分+拉格朗日乘数法]
- 【BZOJ2876】[Noi2012]骑行川藏【二分】【拉格朗日乘数法】
- 【拉格朗日乘数法】[NOI2012]骑行川藏
- 【BZOJ】【P2876】【NOI2012】【骑行川藏】【题解】【拉格朗日乘数】
- [BZOJ2876][Noi2012]骑行川藏 && 二分+拉格朗日乘数
- 【BZOJ2876】【NOI2012】骑行川藏 拉格朗日乘数、
- [NOI2012]骑行川藏(拉格朗日乘数法)
- bzoj2876: [Noi2012]骑行川藏 :拉格朗日乘数法
- 【拉格朗日乘数法】bzoj2876: [Noi2012]骑行川藏
- BZOJ 2876 NOI2012 骑行川藏 二分+数学算法
- 2876: [Noi2012]骑行川藏
- bzoj2876: [Noi2012]骑行川藏
- [BZOJ2876] [NOI2012] 骑行川藏 - 数论 - 拉格朗日定理(拉格朗日乘子法) + 二分
- bzoj2876: [Noi2012]骑行川藏 拉格朗日插值
- [四校联训]骑行川藏-二分
- 【NOI 2012】 骑行川藏
- SonicOperator之数据处理
- 还敢说 JavaScript 简单?
- Activity退出应用程序
- VMware虚拟机启动报错,无法执行64位操作
- hdoj 2014
- [拉格朗日乘数法 二分] BZOJ 2876 [Noi2012]骑行川藏
- Asp.net Mvc 身份验证、异常处理、权限验证(拦截器)实现代码
- Mybatis 报错Error instantiating class ---- with invalid types () or values ().
- Charles 从入门到精通
- 细数linux内核里那些偏门的C语言语法(二)x... 与 #x
- C语言关于整数和浮点数的输出
- hdoj 2015
- Android绘图机制与处理技巧(四)Android图像处理之图形特效处理
- 群发邮件