题目链接:

  http://acm.xmu.edu.cn/JudgeOnline/problem.php?id=1587

题目大意

  求两个长度为n(n<=109)的有序序列合并后的中位数。序列中的数在long long范围内

题目思路:

  【二分】

  一开始想贪心错了给跪了。

  因为序列长度相等,取中点比较大小,而后更新比较区间。如果x的中点小于y的中点,则中位数一定在x中点右侧和y中点左侧的合并序列中。

  1. //
  2. //by coolxxx
  3. //
  4. #include<iostream>
  5. #include<algorithm>
  6. #include<string>
  7. #include<iomanip>
  8. #include<memory.h>
  9. #include<time.h>
  10. #include<stdio.h>
  11. #include<stdlib.h>
  12. #include<string.h>
  13. #include<stdbool.h>
  14. #include<math.h>
  15. #define min(a,b) ((a)<(b)?(a):(b))
  16. #define max(a,b) ((a)>(b)?(a):(b))
  17. #define abs(a) ((a)>0?(a):(-(a)))
  18. #define lowbit(a) (a&(-a))
  19. #define sqr(a) ((a)*(a))
  20. #define swap(a,b) ((a)^=(b),(b)^=(a),(a)^=(b))
  21. #define eps 1e-8
  22. #define J 10
  23. #define MAX 0x7f7f7f7f
  24. #define PI 3.1415926535897
  25. #define N 104
  26. using namespace std;
  27. int n,m,lll,ans,cas;
  28. long long x,y,xx,yy,z,a1,a2,b1,b2,c1,c2,lx,ly,rx,ry,midx,midy;
  29. long long f(long long a1,long long b1,long long c1,long long i)
  30. {
  31. return a1*sqr(i)+b1*i+c1;
  32. }
  33. void work()
  34. {
  35. lx=ly=;rx=ry=n;
  36. while(lx<rx-)
  37. {
  38. midx=(rx+lx)>>;
  39. midy=(ry+ly)>>;
  40. if((ry-ly)&)midy++;
  41. x=f(a1,b1,c1,midx);y=f(a2,b2,c2,midy);
  42. if(x>y)
  43. {
  44. rx=midx;
  45. ly=midy;
  46. }
  47. else
  48. {
  49. lx=midx;
  50. ry=midy;
  51. }
  52. }
  53. x=f(a1,b1,c1,lx);
  54. y=f(a2,b2,c2,ly);
  55. xx=f(a1,b1,c1,rx);
  56. yy=f(a2,b2,c2,ry);
  57. }
  58. int main()
  59. {
  60. #ifndef ONLINE_JUDGE
  61. // freopen("1.txt","r",stdin);
  62. // freopen("2.txt","w",stdout);
  63. #endif
  64. int i,j,k;
  65. // while(~scanf("%s",s1))
  66. while(~scanf("%d",&n))
  67. {
  68. cin>>a1>>b1>>c1>>a2>>b2>>c2;
  69. work();
  70. z=min(xx,yy)+max(x,y);
  71. cout<<z/;
  72. if(z%)printf(".5");
  73. puts("");
  74. }
  75. return ;
  76. }
  77.  
  78. /*
  79. //
  80.  
  81. //
  82. */

【二分】XMU 1587 中位数的更多相关文章

  1. 2015 UESTC 搜索专题D题 基爷的中位数 二分

    基爷的中位数 Time Limit: 20 Sec  Memory Limit: 256 MB 题目连接 http://acm.uestc.edu.cn/#/contest/show/61 Descr ...

  2. POJ:3579-Median(二分+尺取寻找中位数)

    Median Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 9201 Accepted: 3209 Description Gi ...

  3. 【POJ - 3579 】Median(二分)

    Median Descriptions 给N数字, X1, X2, ... , XN,我们计算每对数字之间的差值:∣Xi - Xj∣ (1 ≤ i < j ≤N). 我们能得到 C(N,2) 个 ...

  4. [BZOJ 2653] middle(可持久化线段树+二分答案)

    [BZOJ 2653] middle(可持久化线段树+二分答案) 题面 一个长度为n的序列a,设其排过序之后为b,其中位数定义为b[n/2],其中a,b从0开始标号,除法取下整. 给你一个长度为n的序 ...

  5. leetcode 4. Median of Two Sorted Arrays

    https://leetcode.com/problems/median-of-two-sorted-arrays/ There are two sorted arrays nums1 and num ...

  6. APIO2015泛做

    可以在UOJ上提交也可以在bzoj上提交(权限) A. Bali Sculptures 对于前72%的数据,按位考虑,然后跑一点沙茶dp就行了. dp:用f[x][y]表示前x位分为y段是否满足条件. ...

  7. BZOJ 2653 middle

    AC通道:http://www.lydsy.com/JudgeOnline/problem.php?id=2653 题目大意:多组询问,求左右端点在规定范围内移动所能得到的最大中位数. [分析] 求中 ...

  8. HDU5919:Sequence II

    题面 Vjudge Sol 给一个数列,有m个询问,每次问数列[l,r]区间中所有数的第一次出现的位置的中位数是多少,强制在线 主席树 询问区间内不同的数的个数 树上二分找到那个中位数 # inclu ...

  9. 【题解】51nod 1685第K大区间2

    二分答案+++++++(。・ω・。) 感觉这个思路好像挺常用的:求第\(K\) 大 --> 二分第 \(K\) 大的值 --> 检验当前二分的值排名是第几.前提:排名与数值大小成单调性变化 ...

随机推荐

  1. Eclipse中使用git把项目导入到osc@git中

    方便Eclipse用户使用Git把项目导入到osc@git中进行管理. Eclipse Git osc@git 一.原有项目:  项目名为TestGit 二.在osc@git上面创建一个新项目库. 填 ...

  2. HDU 3533 Escape(bfs)

    Escape Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Su ...

  3. PHP 网页爬虫

    只能爬一个页面 <?php function get_urls($url){ $url_array=array(); $the_first_content=file_get_contents($ ...

  4. ASP.NET C#使用JavaScriptSerializer实现序列化与反序列化得到JSON

    在JavaScriptSerializer中,我们可以看到下面可以使用的方法或者构造函数,它们都是实例方法: Member Description JavaScriptSerializer() 构造函 ...

  5. ExtJs的事件机制Event(学员总结)

    一.事件的三种绑定方式 1.HTML/DHTML 在标签中直接增加属性触发事件 [javascript] view plaincopy <script type="text/javas ...

  6. (转)PHP中的ob_start用法详解

    用PHP的ob_start();控制您的浏览器cache Output Control 函数可以让你自由控制脚本中数据的输出.它非常地有用,特别是对于:当你想在数据已经输出后,再输出文件头的情况.输出 ...

  7. (转)一步一步学习PHP(3)——函数

    相信每个人在学习PHP之前至少都有着一定的C语言,或者是C++/Java/C#等其他语言的基础,所以在这里也不从头开始说起,只是来谈谈PHP方法的独特之处. 1. 方法概述 首先,写一个最简单的函数, ...

  8. SQL 查询的执行过程

    所述内容均来自互联网,文章仅作为学习笔记,备忘使用. 有时候我在想我们总是在谈优化,FA 优化结构.优化框架.优化程序…,可是我真的了解将要进行的操作[优化]吗?以最近我的工作-优化SQL为例,我真的 ...

  9. plsql 把数据导出成为 .sql文件,记住了

    今天上午,同事 提醒我.可以直接把数据导出成 .sql 文件,类似于 反编译.见下图

  10. http请求的cookie

    Cookie的作用: Cookie是用于维持服务端会话状态的,通常由服务端写入,在后续请求中,供服务端读取. HTTP请求,Cookie的使用过程 1.server通过HTTP Response中的& ...