【NOI2012】骑行川藏(拉格朗日乘数法)

2024-01-30 01:08

本文主要是介绍【NOI2012】骑行川藏(拉格朗日乘数法),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

传送门

  • l i m i t s : φ ( v 1 , v 2 , … , v n ) = ∑ k i ( v i − v i ′ ) 2 s i = E m i n i m i z e { f ( v 1 , v 2 , … , v n ) = ∑ s i v i } L ( v 1 , v 2 , … , v n ) = f + λ φ limits:\varphi(v_1,v_2,\dots,v_n)=\sum k_i(v_i-v_i')^2s_i=E\\ minimize\{f(v_1,v_2,\dots,v_n)=\sum \frac{s_i}{v_i}\}\\ L(v_1,v_2,\dots,v_n)=f+\lambda \varphi limits:φ(v1,v2,,vn)=ki(vivi)2si=Eminimize{f(v1,v2,,vn)=visi}L(v1,v2,,vn)=f+λφ
  • l i m i t limit limit 取等是因为最优解法一定把能量用完,需要满足:
    { ∂ L ∂ v i = − s i v i 2 + 2 λ ( v i − v i ′ ) k i s i = 0 ( 1 ≤ i ≤ n ) ∑ k i ( v i − v i ′ ) s i = E \left\{ \begin{aligned} \frac{\partial L}{\partial v_i}=-\frac{s_i}{v_i^2}+2\lambda(v_i-v_i')k_is_i=0(1\le i\le n)\\ \sum k_i(v_i-v_i')s_i=E \end{aligned} \right. viL=vi2si+2λ(vivi)kisi=0(1in)ki(vivi)si=E
    那么直接二分 λ \lambda λ 就做完了
#include<bits/stdc++.h>
#define cs const
#define pb push_back
using namespace std;
cs double eps = 1e-12;
cs int N = 1e4 + 50;
int n; double E, s[N], k[N], v[N], a[N];
double sqr(double a){ return a * a; }
double clc(double v, double v0, double k){ return k*v*v*(v-v0)*2; }
double chk(double lambda){double sm=0;for(int i=1; i<=n; i++){double l=max(0.0,v[i]), r=1e5;while(r-l>eps){double mid=(l+r)/2;if(lambda*clc(mid,v[i],k[i])>=1) r=mid; else l=mid;} a[i]=l; sm=sm+k[i]*sqr(a[i]-v[i])*s[i];} return sm;
}
double work(){ double as=0; for(int i=1; i<=n; i++) as=as+s[i]/a[i]; return as; }
int main(){scanf("%d%lf",&n,&E);for(int i=1; i<=n; i++)scanf("%lf%lf%lf",&s[i],&k[i],&v[i]);double l=0, r=1e5;while(r-l>eps){double mid=(l+r)/2;if(chk(mid)>E) l=mid; else r=mid;} printf("%.8lf",work()); return 0;
}

这篇关于【NOI2012】骑行川藏(拉格朗日乘数法)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/658677

相关文章

最优化方法Python计算:二次规划的拉格朗日算法

目标函数为二次式,约束条件为线性式的最优化问题称为二次规划。其一般形式为 { minimize 1 2 x ⊤ H x + c ⊤ x s.t.   A e q x − b e q = o A i q x − b i q ≥ o . \begin{cases} \text{minimize}\quad \frac{1}{2}\boldsymbol{x}^\top\boldsymbol{Hx}+\

2024年9月7日(星期六)骑行滑草场

2024年9月7日 (星期六) 骑行滑草场,早8:30到9:00, 郊野公园西门集合,9:00准时出发【因迟到者,骑行速度快者,可自行追赶偶遇。】 偶遇地点:郊野公园西门集合 ,家住东,南,北的骑友在下列时间,地点等候。 骑行地点:郊野公园西门 ---磅房---大墨雨---团结乡(午饭,秘制牛肉,AA制)---滑草场(草上飞)---苹果基地---十里箐路囗---棋盘林道---三家村水库---

2024优质骑行耳机推荐!五大机型真人实测!

近期,在骑行圈内开始流传的关于骨传导耳机不适合骑行使用之类的言论,让部分骑行爱好者对这类耳机的体验产生了疑虑。作为一位资深的骑行装备评测专家,在这里可以跟大家明确说明,骨传导耳机绝对是最适合骑行使用的蓝牙耳机,而那些体验不好的骨传导耳机,多半是来自于非专业的劣质机型,这些劣质机型不仅缺乏专业的技术核心,而且在体验方面也是非常差,甚至长时间使用的话,还会对听力健康造成潜在的伤害。 那么,究竟哪些骨

先从路径优化开始学习FastPlanner之B样条曲线平滑路径(一):从拉格朗日插值到B样条曲线

参考B站视频学习 注:我会列出学习他人的博客,但我不涉及具体推导,原理讲解,旨在于理解必须概念后写代码出效果。 给若干点如何获得一条平滑的曲线? 两个方法插值、拟合 插值要经过给定点,拟合不用经过。 经典插值方法:拉格朗日插值法和牛顿插值法。 区别: 拉格朗日插值法 优点 简单易懂: 拉格朗日插值法公式简单直观,易于理解和实现。无需求导: 拉格朗日插值法不需要对函数进行求导,只需知

骑行耳机品牌前五名排行榜:5大优质骑行耳机闭眼入都不踩雷!

近年来,骨传导耳机市场迅速崛起,但伴随着这股热潮,市场上也出现了诸多鱼龙混杂的杂牌品牌,有不少非专业的产品趁机涌入市场。这些骑行耳机在骨传导技术、防水性能、稳定性及音效调校等上百项关键指标上缺乏深入研发与优化,不仅使用体验大打折扣,甚至如果长期使用的话,还会对身体造成潜在伤害,严重影响了骑行时的安全与乐趣。 作为一位有着5年骑行经验的人来说,在此期间我也是使用过各种各样的骑行耳机,为了帮助大家找

2024年6月22日(星期六)骑行谷仓坝

2024年6月22日 (星期六) 骑行谷仓坝,早8:00到8:30, 龙泉小学门口(北京路尽头,高架桥下),9:00准时出发 【因迟到者,骑行速度快者,可自行追赶偶遇。】 偶遇地点:集合 ,家住东,南,西的骑友在下列时间,地点等候。 骑行地点: 龙泉小学门口---中坝村---道班---小河(牛菜馆,午饭AA制)---谷仓坝---烧灰窑村---马刺沟---九龙湾---沣源路---穿金路

感受风的速度~2024COSP上海国际户外展为您的骑行之旅锦上添花

夏天已经到来 你是在家里宅着 还是出去晒太阳呢 若是还没抉择好 不如来一场畅快淋漓的追风之旅 抬头可见蓝天白云 低头便是美丽风景 无论是在凉亭闲聊的人们 还是竞相绽放的花朵 每一个场景都令人难忘 骑累了 就到附近的座椅上小憩一番 不用刻意追求速度 尽享“慢行生活” 入门骑行时如何选择自行车: 一、明确骑行目的和路况 骑行目的:首先明确您的骑行目的,是为了城市通

SVM(二)从拉格朗日对偶问题到SVM

2.1 拉格朗日对偶(Lagrange duality)      先抛开上面的二次规划问题,先来看看存在等式约束的极值问题求法,比如下面的最优化问题:              目标函数是f(w),下面是等式约束。通常解法是引入拉格朗日算子,这里使用来表示算子,得到拉格朗日公式为              L是等式约束的个数。     然后分别对w和求偏导,使得偏导数等

Python | C# | MATLAB 库卡机器人微分运动学 | 欧拉-拉格朗日动力学 | 混合动力控制

🎯要点 🎯正向运动学几何矩阵,Python虚拟机器人模拟动画二连杆平面机械臂 | 🎯 逆向运动学几何矩阵,Python虚拟机器人模拟动画三连杆平面机械臂 | 🎯微分运动学数学形态,Python模拟近似结果 | 🎯欧拉-拉格朗日动力学数学形态,Python模拟机器人操纵器推导的运动方程有效性 | 🎯运动规划算法,Python虚拟机器人和摄像头模拟离线运动规划算法 | 🎯移动导航卡尔曼