【NOI2012】骑行川藏【拉格朗日乘数法】【二分套二分】

传送门

拉格朗日乘数法裸题

限制

f({v})=∑i=1nkisi(vi−vi′)=EUf(\{v\})=\sum_{i=1}^nk_is_i(v_i-v_i')=E_Uf({v})=i=1nkisi(vivi)=EU

g({v})=∑i=1n=sivig(\{v\})=\sum_{i=1}^n=\frac{s_i}{v_i}g({v})=i=1n=visi

最小值

L(λ,{v})=g({v})+λ[f({v})−EU]=∑i=1n[sivi+λkisi(vi−vi′)2]−λEUL(\lambda,\{v\})=g(\{v\})+\lambda[f(\{v\})-E_U]\\=\sum_{i=1}^n[\frac{s_i}{v_i}+\lambda k_is_i(v_i-v_i')^2]-\lambda E_UL(λ,{v})=g({v})+λ[f({v})EU]=i=1n[visi+λkisi(vivi)2]λEU

对于viv_ivi的偏导数为000,跳若干步后

ki(vi−vi′)vi2=xk_i(v_i-v_i')v_i^2=xki(vivi)vi2=x

二分xxx再二分viv_ivi并计算是否为EUE_UEU即可

#include <iostream>
#include <cstdio>
#include <cstring>
#include <cctype>
#define MAXN 10005
using namespace std;
double s[MAXN],k[MAXN],v[MAXN],v_[MAXN],E;
int n;
inline double solve(int i,double x)
{x/=k[i];double l=0,r=1e5,mid;for (int T=1;T<=100;T++){mid=(l+r)/2;if ((mid-v_[i])*mid*mid<x) l=mid;else r=mid;}return v[i]=l;
}
inline bool check(double x)
{double sum=0;for (int i=1;i<=n;i++){solve(i,x);sum+=k[i]*s[i]*(v[i]-v_[i])*(v[i]-v_[i]);}return sum<E;
}
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,mid;for (int i=1;i<=100;i++){mid=(l+r)/2;if (check(mid)) l=mid;else r=mid;}double ans=0;for (int i=1;i<=n;i++) ans+=s[i]/solve(i,l);printf("%.8f",ans);return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/315109.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

.NET Core 3.0中的WinForms创建集中式拉取请求中心

Windows 窗体&#xff08;或简称 WinForms&#xff09;&#xff0c;多年来被用于开发具有丰富和交互式界面的基于 Windows 的强大应用程序。各类企业对这些桌面应用程序的投入量非常巨大&#xff0c;每月有大约 240 万开发人员使用 Visual Studio 创建桌面式应用。利用和扩展现…

CF296B dp\容斥

传送门 文章目录题意&#xff1a;思路&#xff1a;题意&#xff1a; n≤1e5n\le1e5n≤1e5 思路&#xff1a; 求方案数基本就是考虑dpdpdp了&#xff0c;看到nnn这么大可以考虑一下分情况讨论的dpdpdp状态。 设f[i][j]f[i][j]f[i][j]表示到了第iii个&#xff0c;状态为jjj的方…

min_25筛详解

扯淡 min_25筛是由min_25提出的求积性函数前缀和的亚线性算法&#xff0c;和一个叫“扩展埃氏筛”的东西有着微妙的关系。 至于是什么关系&#xff0c;我也不太清楚&#xff0c;反正有人说很像有人说就是一个东西&#xff08;雾&#xff09; 这段话并不是废话 约定 为了方…

asp.net core 自定义异常处理中间件

Intro在 asp.net core 中全局异常处理&#xff0c;有时候可能不能满足我们的需要&#xff0c;可能就需要自己自定义一个中间件处理了&#xff0c;最近遇到一个问题&#xff0c;有一些异常&#xff0c;不希望记录错误日志&#xff0c;目前主要是用户请求取消导致的 TaskCanceled…

CF786B Legacy 线段树优化建图

传送门 文章目录题意&#xff1a;思路&#xff1a;题意&#xff1a; 实现如下连边后跑最短路。 思路&#xff1a; 优化建图板子题&#xff0c;优化思路就是将区间分割成若干个线段树上的线段&#xff0c;与线段树分治有点类似&#xff0c;由于有点向区间也有区间向点的边&a…

【ZJOI2015】幻想乡 Wi-Fi 搭建计划【几何】【贪心】【dp】

传送门 题意&#xff1a;一个x∈(−∞,∞),y∈[0,R]x\in(-\infin,\infin),y\in[0,R]x∈(−∞,∞),y∈[0,R]的矩形中有nnn个点&#xff0c;矩形外有mmm个半径均为RRR的圆&#xff0c;有独立的代价cic_ici​。求覆盖最多的点所需的最小代价。 n,m≤100n,m\leq100n,m≤100 显然先…

.NET架构开发应知应会

.NET程序是基于.NET framework、.NET Core、Mono、UWP【.NET实现】开发和运行的 &#xff0c;定义以上【.NET实现】的标准规范称为.NET StandardL1&#xff1a;.NET Standard.NET标准是一组API集合&#xff0c;由上层三种【.NET实现】的Basic Class Library实现&#xff0c;更正…

几个冷门字符串算法的学习笔记(最小表示法,exKMP,Lyndon Word)

所有下标均从1开始 最小表示法 给定一个串&#xff0c;求字典序最小的循环同构。 我们把串复制一遍接在后面&#xff0c;然后求出[1,N][1,N][1,N]开始的长为NNN的子串中最小的 先设i1,j2i1,j2i1,j2 然后暴力找出iii和jjj往后匹配的第一个不同的位置&#xff0c;记为ikikik…

P6348 [PA2011]Journeys 线段树优化建图 区间连区间

传送门 文章目录题意&#xff1a;思路&#xff1a;题意&#xff1a; 每次连接[a,b][a,b][a,b]与[c,d][c,d][c,d]之间所有点&#xff0c;让后跑最短路。 思路&#xff1a; 比普通的优化建图能简单点&#xff0c;我们只需要加两个虚点之间边权为111&#xff0c;让后让某个点连…

.NET Core IdentityServer4实战 第Ⅴ章-单点登录

OiDc可以说是OAuth的改造版&#xff0c;在最初的OAuth中&#xff0c;我们需要先请求一下认证服务器获取下Access_token&#xff0c;然后根据Access_token去Get资源服务器, 况且OAuth1 和 2 完全不兼容&#xff0c;易用性差&#xff0c;而OIDC可以在登陆的时候就把信息返回给你&…

【CF594E】Cutting the Line 【贪心】【Lyndon Word】【扩展kmp】

传送门 题意&#xff1a;给一个字符串SSS和正整数kkk&#xff0c;将SSS分成最多kkk段&#xff0c;每段不变或翻转&#xff0c;使得最后的字典序最小。 ∣S∣≤5106|S|\leq5\times10^6∣S∣≤5106 发现不翻转可以看成拆成若干单字符分别翻转&#xff0c;所以先分析一下必须翻转…

一份好的工作总结才能帮你升职加薪

这里是Z哥的个人公众号每周五早8点 按时送达当然了&#xff0c;也会时不时加个餐&#xff5e;我的第「79」篇原创敬上最近有点忙&#xff0c;搬出之前攒的一篇文章来应急一下。一篇能助你挣更多钱的文章。好了&#xff0c;下面开始。我的读者们大部分是互联网行业的&#xff0c…

CF1385E Directing Edges 拓扑序

传送门 文章目录题意&#xff1a;思路&#xff1a;题意&#xff1a; 给你一个图和若干个边&#xff0c;有些是有向边&#xff0c;有些是无向边&#xff0c;让你给无向边定向&#xff0c;使得最终的图是DAGDAGDAG。 思路&#xff1a; 题目让构造DAGDAGDAG&#xff0c;比较容易…

【BZOJ3684】大朋友和多叉树【生成函数】【拉格朗日反演】【多项式幂函数】

传送门 题意&#xff1a;给定nnn和集合SSS&#xff0c;求含nnn个叶子结点、非叶子节点的儿子数在SSS内的树的个数 模 950009857(4532211)950009857(453\times2^{21}1)950009857(4532211)。结点无标号但儿子间有顺序。 n≤105n \leq 10^5n≤105 算是拉格朗日反演模版题了吧………

Codeforces Round #723 (Div. 2) D. Kill Anton 线段树 + 暴力

传送门 文章目录题意&#xff1a;思路&#xff1a;题意&#xff1a; 给你一个只有ANTOANTOANTO四个字母的字符串&#xff0c;你每次可以交换相邻两个&#xff0c;花费为111&#xff0c;让后让你打乱字符串&#xff0c;使得将打乱的字符串还原为原来的字符串的花费最小。 n≤1e…

腾讯开源软件镜像站上线

腾讯开源软件镜像站(Tencent Open Source Mirror Site)已于近日上线&#xff0c;其官方名称为「腾讯云软件源」&#xff0c;由腾讯云提供支持。官方表示搭建此开源镜像站的目的在于宣传自由软件的价值&#xff0c;提高自由软件社区文化氛围&#xff0c;推广自由软件在国内的应用…

【集训队作业2018】复读机【指数型生成函数】【单位根反演】【二项式定理】

传送门 单位根反演听着高级&#xff0c;其实没啥技术含量…… 本文是篇几乎没有证明的佛系讲解 单位根反演的式子长这样&#xff1a; 1n∑i0n−1ωnik[k∣n]\frac{1}{n}\sum_{i0}^{n-1}\omega_n^{ik}[k|n]n1​i0∑n−1​ωnik​[k∣n] 其实本质是IFFT 感觉懵的&#xff1f;…

ASP.NET Core on K8S学习初探(2)

“ [LOG] ASP.NET Core on K8S Starting...”在上一篇《单节点环境搭建》中&#xff0c;通过Docker for Windows在Windows开发机中搭建了一个单节点的K8S环境&#xff0c;接下来就是动人心弦的部署ASP.NET Core API到K8S了。但是&#xff0c;在部署之前&#xff0c;我还是把基本…

Educational Codeforces Round 96 E. String Reversa 线段树模拟序列交换

传送门 文章目录题意&#xff1a;思路&#xff1a;题意&#xff1a; 思路&#xff1a; 与上一篇题解大同小异&#xff0c;无非就是不需要枚举排列了。 // Problem: E. String Reversal // Contest: Codeforces - Educational Codeforces Round 96 (Rated for Div. 2) // URL:…

【LOJ6363】「地底蔷薇」【点双】【指数型生成函数】【扩展拉格朗日反演】【多项式幂函数】

传送门 题意&#xff1a;给定nnn和集合SSS,求出nnn个点的「所有极大点双连通分量的大小都在SSS 内」的不同简单无向连通图的个数 模 998244353998244353998244353。 n,∑i∈Si≤105n,\sum_{i\in S}i \leq10^5n,∑i∈S​i≤105 道理我都懂&#xff0c;可为啥我百度搜地灵殿ex终…