手动插姿势:

三分法可以应用于凸函数或者凹函数的求极值。

三分讲解:http://blog.csdn.net/pi9nc/article/details/9666627

三分模板:http://www.cnblogs.com/Hilda/archive/2013/03/02/2939708.html

  1. double cal(Type a)
  2. {
  3. /* 根据题目的意思计算 */
  4. }
  5. void solve()
  6. {
  7. double Left, Right;
  8. double mid, midmid;
  9. double mid_value, midmid_value;
  10. Left = MIN; Right = MAX;
  11. while (Left + EPS <= Right)
  12. {
  13. mid = (Left + Right) / 2;
  14. midmid = (mid + Right) / 2;
  15. if (cal(mid)>=cal(midmid))
  16. Right = midmid;
  17. else Left = mid;
  18. }
  19. }
  20. 更多相关题:
  21. HDU :3400 2298 4454 2438 3756
  22. POJ: 3301 3737
  23. ZOJ: 3203

题意:

给n个二次函数,定义域为[0,1000], 求x在定义域中每个x所在的n个函数的最大值的最小值。

思路:

其实说N个函数的话,定义域也确定了,要么是单调增,要么是单调减,要么就是凹性,因为a>=0的,三分一下,每次找位置的最大,然后取最小就好了。。。

  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. typedef long long LL;
  4. const int N=1e4;
  5. const double eps=1e-9;
  6. const double INF=1e15;
  7. struct asd{
  8. double a,b,c;
  9. };
  10. asd q[N];
  11. int n;
  12. double fx(double a,double b,double c,double x)
  13. {
  14. return a*x*x+b*x+c;
  15. }
  16. double getmin(double x)
  17. {
  18. double temp;
  19. double ans=-INF;
  20. for(int i=0;i<n;i++)
  21. {
  22. temp=fx(q[i].a,q[i].b,q[i].c,x);
  23. if(ans<temp)
  24. ans=temp;
  25. }
  26. return ans;
  27. }
  28. void sanfen()
  29. {
  30. double ans=INF;
  31. double Left, Right;
  32. double mid;
  33. double temp1,temp2;
  34. Left = 0; Right = 1000;
  35. while (Left<=Right)
  36. {
  37. mid=(Left+Right)/2;
  38. temp1=getmin(mid);
  39. temp2=getmin(mid-eps);
  40. if(temp1<temp2)
  41. Left=mid+eps;
  42. else
  43. Right=mid-eps;
  44. if(ans>temp1)
  45. ans=temp1;
  46. }
  47. printf("%.4lf\n",ans);
  48. }
  49. int main()
  50. {
  51. int T;
  52. scanf("%d",&T);
  53. while(T--)
  54. {
  55. scanf("%d",&n);
  56. for(int i=0;i<n;i++)
  57. scanf("%lf%lf%lf",&q[i].a,&q[i].b,&q[i].c);
  58. sanfen();
  59. }
  60. return 0;
  61. }

hdoj3714【三分】的更多相关文章

  1. [HDOJ3714]Error Curves(三分)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3714 题意:求n个二次函数在[0,1000]的最小值. 三分枚举. #include <bits ...

  2. hdu3714 三分找最值

    Error Curves Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Tota ...

  3. BZOJ 1857 传送带 (三分套三分)

    在一个2维平面上有两条传送带,每一条传送带可以看成是一条线段.两条传送带分别为线段AB和线段CD.lxhgww在AB上的移动速度为P,在CD上的移动速度为Q,在平面上的移动速度R.现在lxhgww想从 ...

  4. hdu 4717(三分求极值)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4717 思路:三分时间求极小值. #include <iostream> #include ...

  5. HDU2438 数学+三分

    Turn the corner Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)T ...

  6. 三分之一的程序猿之社交类app踩过的那些坑

    三分之一的程序猿之社交类app踩过的那些坑 万众创新,全民创业.哪怕去年陌生人社交不管融资与否都倒闭了不知道多少家,但是依然有很多陌生人社交应用层出不穷的冒出来.各种脑洞大开,让人拍案叫起. 下面我们 ...

  7. 基于jPlayer的三分屏制作

    三分屏,这里的三分屏只是在一个播放器里同时播放三个视频,但是要求只有一个控制面板同时控制它们,要求它们共享一个时间轨道.这次只是简单的模拟了一下功能,并没有深入的研究. 首先,需要下载jPlayer, ...

  8. 【BZOJ-1857】传送带 三分套三分

    1857: [Scoi2010]传送带 Time Limit: 1 Sec  Memory Limit: 64 MBSubmit: 1077  Solved: 575[Submit][Status][ ...

  9. ACM : HDU 2899 Strange fuction 解题报告 -二分、三分

    Strange fuction Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Tot ...

随机推荐

  1. 跟阿根一起学Java Web开发一:开发环境搭建及JSPGen基础配置

    JSPGenSDF软件开发框架(于2014年5月5号公布4.0版).简称JSPGen,专用Java Web方面平台式软件开发,整个框架也能够说是前台与后台的一个粘合剂,如今对JSPGenSDF进行开发 ...

  2. HTML5已定稿:将彻底颠覆原生应用

    2007年W3C(万维网联盟)立项HTML5,直至2014年10月底.这个长达八年的规范最终正式封稿. 过去这些年.HTML5颠覆了PC互联网的格局,优化了移动互联网的体验,接下来.HTML5将颠覆原 ...

  3. Android手机输入法按键监听-dispatchKeyEvent

    近期在项目开发中遇到一个关于手机输入键盘的坑.特来记录下. 应用场景: 项目中有一个界面是用viewpaper加三个fragment写的,当中viewpaper被我屏蔽了左右滑动,上面有三个点击按钮, ...

  4. c程序设计语言第一章4

    (昨天网络出现了问题,导致这篇没来得及上传,再次补上,今晚照常上传笔记) 练习1.19编写函数r e v e r s e ( s )将字符串s中的字符顺序颠倒过来.使用该函数编写一个程序,每次颠倒一个 ...

  5. 【转载】C#扫盲之:静态成员、静态方法、静态类、实例成员及区别

    文章目录 1.静态成员.实例成员 2.静态类 3.类的静态成员和非静态成员区别 --------------------------------------分割线------------------- ...

  6. 【转载】Http协议与TCP协议简单理解

    在C#编写代码,很多时候会遇到Http协议或者TCP协议,这里做一个简单的理解.TCP协议对应于传输层,而HTTP协议对应于应用层,从本质上来说,二者没有可比性.Http协议是建立在TCP协议基础之上 ...

  7. 【iOS开发系列】cell切割线置顶

    废话不多说,直接上代码: /** * tableViewCell切割线左側置顶 < 1 > */ -(void)viewDidLayoutSubviews { if ([_tableVie ...

  8. 4. 基本TCP套接字编程

    基本函数接口 socket函数 #include <sys/socket.h> int socket(int family, int type, int protocol); 成功时返回一 ...

  9. 全志Android SDK编译详解(二)

    注意要确定安装了jdk) 第一步: cd  lichee; ./build.sh  -p sun5i_elite -k 3.0  (apt-get install uboot-mkimage需要安装m ...

  10. DELPHI中的消息处理机制(三种消息处理方法的比较,如何截断消息)

    DELPHI中的消息处理机制 Delphi是Borland公司提供的一种全新的WINDOWS编程开发工具.由于它采用了具有弹性的和可重用的面向对象Pascal(object-orientedpasca ...