poj 2187 Beauty Contest(凸包求解多節點的之間的最大距離)

 1 /*  poj 2187 Beauty Contest
 2     凸包:尋找每兩點之間距離的最大值
 3     這個最大值一定是在凸包的邊緣上的!  
 4     
 5     求凸包的算法: Andrew算法! 
 6 */
 7 #include<iostream> 
 8 #include<cstdio>
 9 #include<cstring>
10 #include<algorithm>
11 using namespace std;
12 
13 struct Point{
14    Point(){}
15    Point(int x, int y){
16       this->x=x;
17       this->y=y;
18    }
19    int x, y;
20    
21   static int cross(Point a, Point b){
22        return a.x*b.y - a.y*b.x;
23    }
24    
25   static int dist(Point a, Point b){
26        return (a.x-b.x)*(a.x-b.x) + (a.y-b.y)*(a.y-b.y);
27    }
28    
29    Point operator -(Point tmp){
30       return Point(x-tmp.x, y-tmp.y);
31    }
32 };
33 
34 bool cmp(Point a, Point b){
35    if(a.x==b.x)
36      return a.y<b.y;
37    return a.x<b.x;
38 }
39 
40 Point p[50005];
41 int ch[50005];
42 int n;
43 
44 int main(){
45    int i;
46    while(scanf("%d", &n)!=EOF){
47       for(i=0; i<n; ++i)
48          scanf("%d%d", &p[i].x, &p[i].y);
49       sort(p, p+n, cmp);
50       int m=0;
51       //求下凸包, 如果某一個點不在線段之內,向量的叉積必定是<=0; 
52       for(i=0; i<n; ++i){
53          while(m>1 && Point::cross(p[ch[m-1]]-p[ch[m-2]], p[i]-p[ch[m-2]])<=0) m--;
54          ch[m++]=i;
55       }
56       //為啥求上凸包的時候,坐標的從n-2開始:因為n-1點一定是在下凸包中的(因為它的橫坐標最大,必然是包含其他節點的) 
57       int k=m;
58       for(i=n-2; i>=0; --i){
59          while(m>k && Point::cross(p[ch[m-1]]-p[ch[m-2]], p[i]-p[ch[m-2]])<=0) m--;
60          ch[m++]=i;
61       }
62       --m;
63       int maxD=-1, j, d;
64       for(i=0; i<m; ++i)
65          for(j=i+1; j<=m; ++j)
66              if(maxD < (d=Point::dist(p[ch[i]], p[ch[j]])))
67                 maxD=d;
68       printf("%d\n", maxD);
69    }
70    return 0;
71 }

?

轉載于:https://www.cnblogs.com/hujunzheng/p/3879221.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/531833.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/531833.shtml
英文地址,請注明出處:http://en.pswp.cn/news/531833.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

引入ui組件_Vuejs, Semantic CSS前端框架fish-ui

簡介基于vue2.0, github star 690, 一款小眾的UI框架fish-ui&#xff0c;直接上截圖&#xff1a;主要特性配備Vue.js&#xff0c;Moment&#xff0c;Vue-Router&#xff0c;ES6和Babel 6使用Webpack 2.0和Vue LoaderSemantic CSS 組件使用 Less支持現代瀏覽器快速開發安裝npm i…

html5可以用flash,HTML5網頁可以直接看視頻,不用flash嗎,另外WP7為何不支持flash。。。HTML5網頁...

Android中可以直接使用webView來加載HTML5通過video標簽來播放視頻。以下為基本步驟&#xff1a;一、需要在AndroidManifest.xml文件中聲明需要使用HardwareAccelerate, 可以細化到Activity級別&#xff0c;如果不需要的View可以聲明不要用加速&#xff0c;但是需要在代碼中做具…

pojBuy Tickets2828線段樹或者樹狀數組(隊列中倒序插隊)

這題開始的思路就是模擬&#xff1a;就像數組中插點一樣&#xff0c;每一個想買票的人都想往前插隊&#xff01; 但是這樣的話肯定TLE&#xff0c; 看了別人的思路之后才恍然大悟&#xff01; 正解&#xff1a;將開始的正序插入&#xff0c;變成倒序插入&#xff0c;這樣的話&a…

減去字符串_從文本字符串中提取指定值的6個超級技巧解讀

在實際的工作中&#xff0c;從指定的字符串中提取指定文本也是常用的技巧之一&#xff0c;除了手動操作之外&#xff0c;下文的8種應用技巧也是必須要掌握的。一、Left函數法。功能&#xff1a;從指定文本字符串的第一個字符開始&#xff0c;提取指定長度的字符串。語法結構&am…

如果用計算機錄制歌曲需要,網絡歌手怎么用電腦錄音軟件錄歌

現在網上有很多網絡歌手主要分為兩類&#xff0c;一類是原創&#xff0c;一類是翻唱。可是不管是原創還是翻唱都需要自己唱歌錄歌&#xff0c;要有屬于自己的歌曲(自己唱的)。要錄歌就要有設備&#xff0c;畢竟網路歌手剛開始大多數都是草根沒有錢找音樂工作室&#xff0c;只能…

中國剩余定理證明過程

原網址&#xff1a;http://blog.csdn.net/wtq493841534/article/details/5452720 中國剩余定理 中國剩余定理可以描述為&#xff1a; 若某數x分別被d1、、…、dn除得的余數為r1、r2、…、rn&#xff0c;則可表示為下式&#xff1a;xR1r1R2r2…RnrnRD其中R1是d2、d3、…、dn的公…

關閉瀏覽器前提示_win7系統ie總彈出查看和跟蹤下載的關閉方法

今天小編給大家分享的是win7系統ie總彈出查看和跟蹤下載的關閉方法&#xff0c;使用ie瀏覽器上網的時候&#xff0c;有些用戶會遇到ie總彈出查看和跟蹤下載的窗口&#xff0c;很多用戶想關閉掉此提示&#xff0c;卻不知如何關閉查看和跟蹤下載的窗口&#xff0c;那么請參照以下…

html引入百度地圖報錯,vue引入百度地圖BMapGL,或者其他個性化地圖

3.jpgvue的百度地圖早就有vue-baidu-map這里就不贅述了&#xff0c;自己去直接對著API寫就好了&#xff0c;基本上已經滿足絕大多數需求了還簡單方便。vue-baidu-map 傳送門 https://dafrok.github.io/vue-baidu-map/#/zh/index這里主要是在vue里面引入BMapGL&#xff0c;或者其…

Sort the Array

1 /*2 思路&#xff1a; 3 找到單調下降串的起始位置[l, r]4 如果左邊 0...l-1中的最大值 > l...r中的最小值 或者5 r1...n中的最小值 < l...r中的最大值 都是不能實現排序的&#xff01; 6 */7 #include<iostream>8 #include<cstdio>9 #include…

排序千萬級數據_從千萬級房產成交量排名,窺探中國城市的真實家底

原標題&#xff1a;從千萬級房產成交量排名&#xff0c;窺探中國城市的真實家底 文&#xff0f;孫不熟 來源/城市戰爭 如果你有1000萬以上的買房預算&#xff0c;你的選擇其實很少&#xff0c;總共不超過10個城市&#xff0c;這就是中國城市和樓市的真實家底。 昨天推送了一篇《…

html 實現列表組并排,列表組--自定義列表組

Bootstrap框加在鏈接列表組的基礎上新增了兩個樣式&#xff1a;?list-group-item-heading&#xff1a;用來定義列表項頭部樣式?list-group-item-text&#xff1a;用來定義列表項主要內容這兩個樣式最大的作用就是用來幫助開發者可以自定義列表項里的內容&#xff0c;如下面的…

poj1006生理周期(中國剩余定理)

1 /*2 中國剩余定理可以描述為&#xff1a;3 若某數x分別被d1、、…、dn除得的余數為r1、r2、…、rn&#xff0c;則可表示為下式&#xff1a;4 xR1r1R2r2…RnrnRD5 其中R1是d2、d3、…、dn的公倍數&#xff0c;而且被d1除&#xff0c;余數為1&#xff1b;&#xff08;稱為R1相對…

queryselectorall 怎么取name_用這個方法,我爬取了《王者榮耀》《英雄聯盟》等游戲皮膚圖片...

本文簡介&#xff1a;本文使用Python制作爬蟲&#xff0c;來爬取《英雄聯盟》《王者榮耀》《神之浩劫》等游戲官方網站的英雄皮膚圖片。可以作為新手爬蟲的練手實戰案例&#xff01;&#xff01;愛打游戲的各位肯定也是對游戲里面制作精美&#xff0c;嫵媚無比或是帥氣逼人的皮…

云端計算機可以玩游戲么,手機掌上云電腦是什么?為什么可以玩PC游戲?

原標題&#xff1a;手機掌上云電腦是什么&#xff1f;為什么可以玩PC游戲&#xff1f;經常會在一些短視頻平臺上看到別人用云電腦的應用在手機上玩PC游戲&#xff0c;那么這個掌上云電腦的應用到底是什么呢&#xff1f;為什么可以玩PC游戲呢&#xff1f;按照以往的理解&#xf…

codeforces——Little Pony and Sort by Shift

1 /*2 題目大意&#xff1a;給你一個序列&#xff0c;不斷地將最后邊的數值移動到最前邊&#xff0c;問最少經過多少次可以變成一個單調遞增的序列&#xff01; 3 如果不能則輸出-1。 4 如果該序列按照不斷從后向前移動排序成功&#xff0c;那么該序列要么只有一個單調遞增的…

用python玩轉數據慕課答案第三周_大學慕課用Python玩轉數據答案公眾號

抹灰用石灰膏的熟化時間不少于多少天&#xff1f;16只兔子&#xff0c;分別裝在5個籠子里&#xff0c;每個籠子里的小兔子只數都不相等&#xff0c;籠子里最不可能出現的只數是( )。患者&#xff0c;女&#xff0c;44歲。患心肌梗死住院治療&#xff0c;首次靜脈泵入硝酸甘油時…

計算機組策略怎么設置遠程桌面,組策略 之 ? 自動啟用客戶端遠程桌面功能

在企業里進行管理的時候&#xff0c;有時需要利用遠程桌面來管理客戶端計算機&#xff0c;在一般情況下&#xff0c;往往需要客戶端啟用此功能&#xff0c;有沒有好的辦法&#xff0c;讓客戶端自動啟用呢&#xff1f;當然可以&#xff0c;我們可以通過組策略的形式來完成。實施…

codeforces——Little Pony and Expected Maximum

1 /*2 我們枚舉每次選擇最大數值的情況&#xff1a;m個數&#xff0c; 投擲n次3 最大值是1&#xff1a; 1種4 2&#xff1a; 2^n-15 3: 3^n-2^n6 .....7 m: m^n-(m-1)^n8 9 所以最后的結果sum((k/m)^n …

華北水利水電大學c語言程序設計四_我校代表隊在“中國高等計算機大賽——團體程序設計天梯賽” 中喜獲佳績...

近日&#xff0c;第四屆“中國高校計算機大賽——團體程序設計天梯賽”全國總決賽獲獎名單公布&#xff0c;我校以全國高校排名第84位&#xff0c;河南省高校第4名的成績獲得河南省高校二等獎。我校派出的“NCWU_面壁者”&#xff0c;“NCWU_彈星者”和“NCWU_執劍人”三支隊伍…

計算機控制基礎知識,最新 分析計算機控制系統及其運算基礎知識-精品

分析計算機控制系統及其運算基礎知識系統程序層的工作基礎建立在控制系統改造和擴充過的機器&#xff0c;下文就是關于控制系統及其運算基礎知識論文。隨著技術的飛進發展&#xff0c;計算機控制系統及其操作過程的運算程序研究已成為一個熱門話題&#xff0c;本文主要對計算機…