麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

POJ 3579 Median(2次二分)

2019-11-10 19:46:55
字體:
來源:轉載
供稿:網友

Given N numbers, X1,X2, ... , XN, let us calculate the difference of every pair of numbers: ∣Xi- Xj∣ (1 ≤ i j N). We can get C(N,2) differences through this work, and now your task is to find the median of the differences as quickly as you can!

Note in this PRoblem, the median is defined as the (m/2)-th  smallest number ifm,the amount of the differences, is even. For example, you have to find the third smallest one in the case ofm = 6.

Input

The input consists of several test cases.In each test case, N will be given in the first line. Then N numbers are given, representingX1, X2, ... ,XN, ( Xi≤ 1,000,000,000  3 ≤ N ≤ 1,00,000 )

Output

For each test case, output the median in a separate line.

Sample Input
41 3 2 431 10 2Sample Output
18

  思路:本題直接使用暴力法,時間復雜度約為n^2,超時,所以采用二分法。

  先把差值分出來,再用二分法驗證差值是否符合要求。

#include<algorithm>#include<cstdio>#include<cstdlib>using namespace std;int n,m;int str[100005];int judge(int mid){   int cnt=0;    for(int i=0;i<n;i++)    {        cnt+=n-(lower_bound(str,str+n,str[i]+mid)-str);//C++中STL的查找函數
    }    return cnt>m?1:0;}int main(){   //freopen("e://in.txt","r",stdin);    while(scanf("%d",&n)==1)    {     m=n*(n-1)/4;         for(int i=0;i<n;i++)          scanf("%d",&str[i]);          sort(str,str+n);          int left=0,right=str[n-1]+str[0],mid;          while(left<=right)          {              mid=(left+right)/2;              if(judge(mid))                left=mid+1;              else                right=mid-1;          }          printf("%d/n",left-1);    }    return 0;}

總結:lower_bound函數的引用

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 高清一区二区在线观看 | 久久中文免费 | 成人在线视频精品 | 国产在线观看91精品 | 国产91在线亚洲 | 亚洲电影在线观看高清免费 | 欧美激情图区 | 成人综合一区二区 | 九九热九九爱 | 欧美一级黄色片在线观看 | 日本网站在线看 | 综合在线视频 | 亚洲欧美在线视频免费 | av成人在线免费观看 | 成人午夜视屏 | 欧美a区| 久久我不卡 | 久久久久av电影 | 91精品最新国内在线播放 | 高清国产在线 | 桥本有菜免费av一区二区三区 | 亚洲aⅴ在线观看 | 男人久久天堂 | 欧美综合在线观看 | 激情五月少妇a | 亚洲第一成网站 | 天天撸日日夜夜 | 99精品无人区乱码在线观看 | xxxⅹ96日本护士hd | 免费男女视频 | h视频在线免费观看 | 国产一区精品在线观看 | 日韩激情 | 国产精品久久久久久久av三级 | 性生活视频一级 | 毛片免费视频观看 | 特级黄aaaaaaaaa毛片 | 999精品久久久| 国产午夜电影在线观看 | 在线成人一区二区 | 男男啪羞羞视频网站 |