[NOI2012]骑行川藏

思路一:二分导数

http://www.cnblogs.com/RabbitHu/p/9019762.html

考虑“性价比”即花费单位能量缩短的时间。

如果我们给每一段随机分配一个速度,再调整

那么一定选择性价比最高的调整,或者把性价比较低的能量取回,再分配

而性价比随着能量分配,会越来越低

可以发现的是,最后所有的n段的性价比一定都相同!

(如果存在不同的,那么一定可以从性价比较低的收回一些能量,给性价比高的用,使得总时间更少)

由于实数范围,所以暴力模拟用个堆什么的不现实

考虑用数学方法:

每段的t-E图像是一个类反比函数

每个点的斜率就是当前能量的性价比!

就是$e_i$位置的导数

也即,最后的所有图像$e_i$的导数都是一样的!(并且都是负数)

而且可以发现,最后导数负数绝对值越小(导数越大),那么花费的总能量越多,时间越短

所以有二分的性质!

二分导数,考虑怎么检验

直观的想法是求出t-E的导数关于E的函数,,,没法求

但是,t和v的图像的导数就是y=si/x的导数可以求,E和v的导数根据关系式可以直接求

所以考虑通过v作为中介,求出t-E的导数关于v的函数

(看上面博客)然后就得到了式子,对于二分的导数,解方程求出$v_i$,再求出$e_i$,通过e的总和判断二分走向

至于解方程,就用二分即可。(由于等式一边是正数,所以一定有$v_i>v_i'$)

一些精度问题:(本题精度要求还是比较高的)

1.二分解方程判断的时候,能不用除法就不要用除法!但是不等式记得变号!(因为x小于零)

2.eps 1e-14(也可以不用eps,二分100次左右就结束(看人品。。。))

代码:

#include<bits/stdc++.h>
#define il inline
#define reg register int
#define numb (ch^'0')
using namespace std;
typedef long long ll;
il void rd(int &x){char ch;bool fl=false;while(!isdigit(ch=getchar()))(ch=='-')&&(fl=true);for(x=numb;isdigit(ch=getchar());x=x*10+numb);(fl==true)&&(x=-x);
}
namespace Miracle{
const int N=1e4+4;
const double eps=1e-14;
double ans;
double s[N],vi[N],k[N];
int n;
double eu;
double jie(double x,int i){double l=max(vi[i],(double)0),r=100000.0;double ret=0.00;int cnt=60;while(r-l>eps){double mid=(l+r)/2;if(mid*mid*(mid-vi[i])*2*k[i]*x<=-1) r=mid;else l=mid;}ret=(l+r)/2;return ret;
}
double che(double mid){double sum=0;for(reg i=1;i<=n;++i){double v=jie(mid,i);sum+=k[i]*s[i]*(v-vi[i])*(v-vi[i]);}return sum;
}
int main(){rd(n);scanf("%lf",&eu);for(reg i=1;i<=n;++i){scanf("%lf%lf%lf",&s[i],&k[i],&vi[i]);}double r=0.0,l=-100000000.00;int cnt=100;while(r-l>eps){double mid=(l+r)/2.0;double now=che(mid);if(now<=eu) l=mid;else r=mid;}double mid=(l+r)/2.0;for(reg i=1;i<=n;++i){ans+=s[i]/jie(mid,i);}printf("%.10lf",ans);return 0;
}}
signed main(){Miracle::main();return 0;
}/*Author: *Miracle*Date: 2019/2/5 11:36:13
*/

思路二:拉格朗日乘数法

咕咕咕

转载于:https://www.cnblogs.com/Miracevin/p/10352649.html

[NOI2012]骑行川藏相关推荐

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

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

  2. 2876: [Noi2012]骑行川藏

    2876: [Noi2012]骑行川藏 Time Limit: 20 Sec  Memory Limit: 128 MBSec  Special Judge Submit: 1243  Solved: ...

  3. BZOJ2876 [Noi2012]骑行川藏

    本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000 作者博客:http://www.cnblogs.com/ljh2000-jump/ ...

  4. [BZOJ2876] [NOI2012]骑行川藏

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

  5. bzoj 2876: [Noi2012]骑行川藏 拉格朗日乘子法

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

  6. bzoj 2876: [Noi2012]骑行川藏 二分+拉格朗日乘数法

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

  7. bzoj2876: [Noi2012]骑行川藏 :拉格朗日乘数法

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

  8. bzoj2876 [Noi2012]骑行川藏 [二分+拉格朗日乘数法]

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

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

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

最新文章

  1. Eclipse打JAR包引用的第三方JAR包找不到 问题解决
  2. 控件属性、事件持久化(转)
  3. 大厂Java初级开发工程师!!!面试必问项之Set实现类:TreeSet
  4. 使用IndexReader.repen提高搜索速度
  5. 使用编辑工具快速创建实体对象的方法
  6. 中兴5G和展锐原厂芯片开发,怎么选?
  7. CORS跨域漏洞的学习(防止CSRF漏洞导致的漏洞)
  8. centos 7.4 + postgresql 10.1 + pg_amqp
  9. python高阶函数心得体会_Python高阶函数总结
  10. SpringBoot 任务调度(开发总结)
  11. 《银行业金融机构数据治理指引》解读及解决方案建议
  12. [HAOI2009]毛毛虫(树形dp)
  13. 3ds Max 2018: Mastering UVW Mapping 3ds Max 2018:掌握UVW映射 Lynda课程中文字幕
  14. 使用扫码枪(二维码,条码)使用键盘钩子获取扫码数据
  15. 三极管的经典之作,你知道吗?
  16. LeetCode刷题: 【914】卡牌分组(求N个数的最大公因数)
  17. 数据结构与算法 学习笔记(上)
  18. mysql报错:Column count doesn‘t match value count at row 1
  19. Mac OS X下删除或添加鼠标右键菜单项目及清除Mac OS右键菜单重复项
  20. SAP-MM-采购折扣知识与会计处理

热门文章

  1. 机房重构(个人版)——类图
  2. Solr调优参考-续
  3. BZOJ 2037 Sue的小球
  4. chcapter 2 量子力学介绍
  5. GIS软件开发工具包TatukGIS Developer Kernel 发布 v11.3.0-Unstable1丨附下载
  6. XenDesktop中无法删除虚拟机
  7. 树莓派安装samba共享文件
  8. 黄聪:自动化测试的7个步骤
  9. 成本速度定成败 四种宽带接入技术大比拼(1)
  10. python中登录、注册操作数据库