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

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

POJ 3579 Median(2次二分)

2019-11-10 20:13:20
字體:
供稿:網(wǎng)友

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

  思路:本題直接使用暴力法,時間復(fù)雜度約為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的查找函數(shù)
    }    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;}

總結(jié):lower_bound函數(shù)的引用

 


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 免费a视频在线观看 | av中文在线观看 | 久久久免费观看完整版 | 久久久久久久久久久久久久国产 | 色妇视频 | 国产成人观看 | 免费一级特黄做受大片 | 黄视频在线网站 | 国产精品麻豆91 | 免费三级大片 | 中文字幕一区在线观看视频 | 91久久久久久久一区二区 | 久久里面有精品 | 欧美日本日韩 | 国产午夜免费视频 | 国产一区二区精品在线观看 | 日韩黄色免费电影 | 国产精品久久久乱弄 | 国产剧情在线观看一区二区 | 毛片大全免费看 | 久久久日韩精品一区二区 | 91精品国产九九九久久久亚洲 | 久久久一区二区精品 | 黄色一级片在线免费观看 | 一级性色 | 国产在线看一区 | 亚洲国产精品久久久久久久久久 | 91九色福利 | 午夜在线观看视频网站 | 欧美一级黄色免费看 | 在线成人免费观看www | 日韩在线毛片 | 做爰裸体激情2 | 精品日韩欧美 | 日韩精品一区二 | 成人免费影院 | 懂色av懂色aⅴ精彩av | 中文字幕一区二区三区久久 | 亚洲片在线观看 | 久久一区国产 | 黄色成年在线观看 |