http://www.lydsy.com/JudgeOnline/problem.php?id=2876

表示完全不会。。。。。。

还是跪拜大神吧

http://www.cnblogs.com/GerynOhenz/p/4698451.html

  1. #include<cstdio>
  2. #include<cstdlib>
  3. #include<iostream>
  4. #include<fstream>
  5. #include<algorithm>
  6. #include<cstring>
  7. #include<string>
  8. #include<cmath>
  9. #include<queue>
  10. #include<stack>
  11. #include<map>
  12. #include<utility>
  13. #include<set>
  14. #include<bitset>
  15. #include<vector>
  16. #include<functional>
  17. #include<deque>
  18. #include<cctype>
  19. #include<climits>
  20. #include<complex>
  21. //#include<bits/stdc++.h>适用于CF,UOJ,但不适用于poj
  22.  
  23. using namespace std;
  24.  
  25. typedef long long LL;
  26. typedef double DB;
  27. typedef pair<int,int> PII;
  28. typedef complex<DB> CP;
  29.  
  30. #define mmst(a,v) memset(a,v,sizeof(a))
  31. #define mmcy(a,b) memcpy(a,b,sizeof(a))
  32. #define fill(a,l,r,v) fill(a+l,a+r+1,v)
  33. #define re(i,a,b) for(i=(a);i<=(b);i++)
  34. #define red(i,a,b) for(i=(a);i>=(b);i--)
  35. #define ire(i,x) for(typedef(x.begin()) i=x.begin();i!=x.end();i++)
  36. #define fi first
  37. #define se second
  38. #define m_p(a,b) make_pair(a,b)
  39. #define SF scanf
  40. #define PF printf
  41. #define two(k) (1<<(k))
  42.  
  43. template<class T>inline T sqr(T x){return x*x;}
  44. template<class T>inline void upmin(T &t,T tmp){if(t>tmp)t=tmp;}
  45. template<class T>inline void upmax(T &t,T tmp){if(t<tmp)t=tmp;}
  46.  
  47. const DB EPS=1e-;
  48. inline int sgn(DB x){if(abs(x)<EPS)return ;return(x>)?:-;}
  49. const DB Pi=acos(-1.0);
  50.  
  51. inline int gint()
  52. {
  53. int res=;bool neg=;char z;
  54. for(z=getchar();z!=EOF && z!='-' && !isdigit(z);z=getchar());
  55. if(z==EOF)return ;
  56. if(z=='-'){neg=;z=getchar();}
  57. for(;z!=EOF && isdigit(z);res=res*+z-'',z=getchar());
  58. return (neg)?-res:res;
  59. }
  60. inline LL gll()
  61. {
  62. LL res=;bool neg=;char z;
  63. for(z=getchar();z!=EOF && z!='-' && !isdigit(z);z=getchar());
  64. if(z==EOF)return ;
  65. if(z=='-'){neg=;z=getchar();}
  66. for(;z!=EOF && isdigit(z);res=res*+z-'',z=getchar());
  67. return (neg)?-res:res;
  68. }
  69.  
  70. const int maxN=;
  71.  
  72. int N;
  73. DB E,s[maxN+],k[maxN+],tv[maxN+],v[maxN+];
  74. DB lambda,ans;
  75.  
  76. inline void calc_v()
  77. {
  78. int i;
  79. re(i,,N)
  80. {
  81. DB L=0.0,R=1e4;
  82. while(L<R)
  83. {
  84. DB mid=(L+R)/2.0,temp=2.0*k[i]*sqr(mid)*(mid-tv[i]);
  85. if(sgn(temp-lambda)==)
  86. {
  87. v[i]=mid;
  88. break;
  89. }
  90. if(temp<lambda) L=mid; else R=mid;
  91. }
  92. }
  93. }
  94.  
  95. inline int check()
  96. {
  97. int i;
  98. DB res=0.0;
  99. re(i,,N)res+=k[i]*sqr(v[i]-tv[i])*s[i];
  100. return res<=E;
  101. }
  102.  
  103. inline void calc_ans(){int i;ans=0.0;re(i,,N)ans+=s[i]/v[i];}
  104.  
  105. inline void solve()
  106. {
  107. DB L=0.0,R=1e5;
  108. while(L+EPS<R)
  109. {
  110. lambda=(L+R)/2.0;
  111. calc_v();
  112. if(check()) L=lambda; else R=lambda;
  113. }
  114. calc_v();
  115. calc_ans();
  116. }
  117.  
  118. int main()
  119. {
  120. /*freopen("bicycling.in","r",stdin);
  121. freopen("bicycling.out","w",stdout);*/
  122. int i;
  123. SF("%d %lf\n",&N,&E);
  124. re(i,,N)SF("%lf %lf %lf\n",&s[i],&k[i],&tv[i]);
  125. solve();
  126. PF("%0.8lf\n",ans);
  127. return ;
  128. }

NOI2012 骑行川藏的更多相关文章

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

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

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

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

  3. bzoj2876 [Noi2012]骑行川藏

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

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

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

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

    题目:http://www.lydsy.com:808/JudgeOnline/problem.php?id=2876 分析:就是要求约束条件下函数的极值,于是拉格朗日乘数列方程,发现化简后的关于vi ...

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

    题意 给出\(s_i, k_i, v_i', E\),满足\(\sum_{i=1}^{n} k_i s_i ( v_i - v_i' )^2 \le E, v_i > v_i'\),最小化$ \ ...

  7. [NOI2012] 骑行川藏 | 求导 二分

    一个能看的题解!预备知识只有高中数学的[导数].不用什么偏导数/拉格朗日乘子法之类的我看不懂的东西( •̀∀•́ )! 如果你不知道什么是导数,可以找本高中数学选修2-2来看一下!看第一章第1.2节就 ...

  8. [NOI2012]骑行川藏(未完成)

    题解: 满分又是拉格朗日啥的 以后再学 自己对于n=2猜了个三分 然后对拍了一下发现是对的

  9. BZOJ2876 [Noi2012]骑行川藏 【拉格朗日乘数法】

    题目链接 BZOJ 题解 拉格朗日乘数法 拉格朗日乘数法用以求多元函数在约束下的极值 我们设多元函数\(f(x_1,x_2,x_3,\dots,x_n)\) 以及限制\(g(x_1,x_2,x_3,\ ...

随机推荐

  1. css浮动+应用(瀑布流效果的实现)

    首先是index.html文件: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"& ...

  2. Linux查找yum安装软件在系统中路径

    find文件查找http://www.ruanyifeng.com/blog/2009/10/5_ways_to_search_for_files_using_the_terminal.html

  3. (转)Apple Push Notification Services in iOS 6 Tutorial: Part 2/2

    转自:http://www.raywenderlich.com/32963/apple-push-notification-services-in-ios-6-tutorial-part-2 Upda ...

  4. JS中的Math.ceil和Math.floor函数的用法

    Math.ceil(x) -- 返回大于等于数字参数的最小整数(取整函数),对数字进行上舍入 Math.floor(x)--返回小于等于数字参数的最大整数,对数字进行下舍入 例如: document. ...

  5. cocos2d-x v3.2 FlappyBird 各个类对象详细代码分析(7)

    今天我们介绍最后两个类 GameOverLayer类 GameLayer类 GameLayer类是整个游戏中最重要的类,由于是整个游戏的中央系统,控制着各个类(层)之间的交互,这个类中实现了猪脚小鸟和 ...

  6. Qt 之容器内的控件全屏

    m_label = new QLabel(); ui->stackedWidget->addWidget(m_label); ui->stackedWidget->setCur ...

  7. rpm-bin

    bin:二进制可执行程序,与windows的exe文件一样,在linux图形界面可直接双击运行,或在终端界面使用该命令执行 ./filename 有的软件是二进制安装程序和源代码一起发布,二进制程序文 ...

  8. 图形绘制 Canvas Paint Path 详解

    图形绘制简介        Android中使用图形处理引擎,2D部分是android SDK内部自己提供,3D部分是用Open GL ES 1.0.大部分2D使用的api都在android.grap ...

  9. eclipse频繁崩溃退出

    1.出现下面的崩溃情况,并且改变内存大小都没有用,而且总是生成下面两个错误日志文件: 解决: 在eclipse.ini文件里面添加一行 -XX:-UseLoopPredicate 2.eclipse崩 ...

  10. polya定理小结

    polya的精髓就在与对循环节的寻找,其中常遇到的问题就是项链染色类问题. 当项链旋转时有n种置换,循环节的个数分别是gcd(n, i); 当项链翻转时有n种置换,其中当项链珠子数位奇数时,循环节的个 ...