题面

入手点是每段路程中能量$e$与时间$t$的关系,$t-e$这个函数的导数对于各个路段一样,否则我们可以从导数大的一段路抽出一部分能量分给导数小的,这样会更优

毕姥爷在考场上的做法:猜一猜,然后拿python打打表,发现确实是这样的

那么可以把$e/t$化成关于每段速度$v$的一个式子

$e/t$

$=(ks(v-v')^2)/(s/v)$

针对$v$求导

$=k(v-v')/(1/v^2)$

$=kv^2(v-v')$

然后二分这个导数$d$,尝试反解出$v$

$kv^2(v-v')=d$

$v^2(v-v')=d/k$

$v^3-v^2v'-d/k=0$

不幸的是这个东西一点也不好解,所幸$v$大于零,所以这个函数大概长这样↓

那么这个零点是可以二分出来的,所以再二分一次就好了

 #include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int N=;
int n; double e,ans,s[N],k[N],v[N];
double V(double der,int idx)
{
double l=,r=1e9;
for(int i=;i<=;i++)
{
double mid=(l+r)/;
if(mid*mid*mid-mid*mid*v[idx]>=der/k[idx]) r=mid;
else l=mid;
}
return r;
}
double Energy(double x)
{
double ret=;
for(int i=;i<=n;i++)
ret+=s[i]*(V(x,i)-v[i])*(V(x,i)-v[i])*k[i];
return ret;
}
int main()
{
scanf("%d%lf",&n,&e);
for(int i=;i<=n;i++)
scanf("%lf%lf%lf",&s[i],&k[i],&v[i]);
double l=,r=1e9;
for(int i=;i<=;i++)
{
double mid=(l+r)/;
(Energy(mid)>e)?r=mid:l=mid;
}
for(int i=;i<=n;i++) ans+=s[i]/V(l,i);
printf("%f",ans);
/* double vv[4]={0,5.12939919,8.03515481,6.17837967};
for(int i=1;i<=n;i++)
{
double t=s[i]/vv[i];
double g=k[i]*(vv[i]-v[i])*(vv[i]-v[i])*s[i];
printf("%lf %lf %lf\n",t,g,vv[i]*vv[i]*(vv[i]-v[i])*k[i]);
}*/
return ;
}

解题:NOI 2012 骑行川藏的更多相关文章

  1. 高等数学(拉格朗日乘子法):NOI 2012 骑行川藏

    [NOI2012] 骑行川藏 输入文件:bicycling.in   输出文件:bicycling.out   评测插件 时间限制:1 s   内存限制:128 MB NOI2012 Day1 Des ...

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

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

  3. BZOJ 2876 【NOI2012】 骑行川藏

    题目链接:骑行川藏 听说这道题需要一些高数知识 于是膜了一发dalao的题解……然后就没了…… 不要吐槽我的精度TAT……eps设太小了就TLE,大了就Wa……我二分的边界是对着数据卡的…… 下面贴代 ...

  4. 【BZOJ2876】【NOI2012】骑行川藏(数学,二分答案)

    [BZOJ2876][NOI2012]骑行川藏(数学,二分答案) 题面 BZOJ 题解 我们有一个很有趣的思路. 首先我们给每条边随意的赋一个初值. 当然了,这个初值不会比这条边的风速小. 那么,我们 ...

  5. 「NOI2012」骑行川藏

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

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

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

  7. bzoj2876 [Noi2012]骑行川藏

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

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

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

  9. 【NOI2012】骑行川藏

    获得成就:第一次在信竞做神仙数学题 先放个前言,$OI$ 出大型数学题还是比较麻烦的,因为主要是考你数学推导 / 手算式子,你算出来之后把公式套个板子,就得到结论——$OI$ 的大型数学题的代码都是板 ...

随机推荐

  1. 20155204 王昊《网络对抗技术》EXP1 PC平台逆向破解

    20155204 王昊<网络对抗技术>EXP1 PC平台逆向破解 (一)实验内容 一.掌握NOP.JNE.JE.JMP.CMP汇编指令的机器码 NOP:NOP指令即"空指令&qu ...

  2. 20155304《网络对抗》Exp7 网络欺诈技术防范

    20155304<网络对抗>Exp7 网络欺诈技术防范 实践内容 本实践的目标理解常用网络欺诈背后的原理,以提高防范意识,并提出具体防范方法.具体实践有 (1)简单应用SET工具建立冒名网 ...

  3. Spring-data-jpa 学习笔记(二)

            通过上一篇笔记的,我们掌握了SpringData的相关概念及简单的用法.但上一篇笔记主要讲的是Dao层接口直接继承Repository接口,然后再自己定义方法.主要阐述了自定义方法时的 ...

  4. ucos获得系统时间OSTimeGet();

    OSTimeGet() 获得系统节拍值OSTime,滴答定时器中断一次OSTime++.

  5. python 生成器按指定大小读取文件

    #!/usr/bin/env python import osimport sys def read_file(fpath): Block_Size = 1024 with open(fpath,&q ...

  6. [hdu5503]EarthCup[霍尔定理]

    题意 一共 \(n\) 只球队,两两之间会进行一场比赛,赢得一分输不得分,给出每只球队最后的得分,问能否构造每场比赛的输赢情况使得得分成立.多组数据 \(T\le 10,n\le 5\times 10 ...

  7. 7、Docker监控方案(cAdvisor+InfluxDB+Grafana)

    一.组件介绍 我们采用现在比较流行的cAdvisor+InfluxDB+Grafana组合进行Docker监控. 1.cAdvisor(数据采集) 开源软件cAdvisor(Container Adv ...

  8. http to https

    https://www.cnblogs.com/powertoolsteam/p/http2https.html

  9. Asp.Net_抓包解析xml文件为json

    protected void Button1_Click(object sender, EventArgs e) { string Phone = this.Txt_Con.Text; string ...

  10. Js_图片轮换

    本文介绍用javascript制作图片轮换效果,原理很简单,就是设置延时执行一个切换函数,函数里面是先设置下面的缩略图列表的白框样式,再设置上面大图的src属性,在IE中显示很正常,可是在FF中会有变 ...