判斷線段和直線相交 POJ 3304

 1 // 判斷線段和直線相交 POJ 3304
 2 // 思路:
 3 // 如果存在一條直線和所有線段相交,那么平移該直線一定可以經過線段上任意兩個點,并且和所有線段相交。
 4 
 5 #include <cstdio>
 6 #include <cstring>
 7 #include <iostream>
 8 #include <algorithm>
 9 #include <map>
10 #include <set>
11 #include <queue>
12 #include <stdlib.h>
13 #include <cmath>
14 using namespace std;
15 typedef long long LL;
16 const LL inf = 1e18;
17 const int N = 5000;
18 const double eps = 1e-8;
19 
20 int sgn(double x){
21     if(fabs(x)<eps) return  0;
22     if(x<0) return -1;
23     return 1;
24 }
25 
26 struct Point{
27     double x,y;
28     Point(){}
29     Point(double _x,double _y){
30         x=_x;y=_y;
31     }
32     Point operator -(const Point &b)const{
33         return Point(x-b.x,y-b.y);
34     }
35     double operator *(const Point &b)const{
36         return x*b.x+y*b.y;
37     }
38     double operator ^(const Point &b)const{
39         return x*b.y-y*b.x;
40     } 
41 };
42 
43 struct Line{
44     Point s,e;
45     Line(){}
46     Line(Point _s,Point _e){
47         s=_s,e=_e;
48     }
49 };
50 
51 double xmult(Point p0,Point p1,Point p2){
52     return (p1-p0)^(p2-p0);
53 }
54 
55 bool Seg_inter_line(Line l1,Line l2){
56     return sgn(xmult(l2.s,l1.s,l1.e))*sgn(xmult(l2.e,l1.s,l1.e))<=0;
57 }
58 
59 double dist(Point a,Point b){
60     return sqrt((a-b)*(a-b));
61 }
62 Line line[N];
63 bool work(Line l1,int n){
64     if(sgn(dist(l1.s,l1.e))==0) return false;
65     for(int i=0;i<n;i++){
66         if(Seg_inter_line(l1,line[i])==false) return false;
67     }
68     return true;
69 }
70 int main(){
71     int n,T;
72     scanf("%d",&T);
73     while(T--){
74         scanf("%d",&n);
75         double x1,y1,x2,y2;
76         for(int i=0;i<n;i++){
77             scanf("%lf%lf%lf%lf",&x1,&y1,&x2,&y2);
78             line[i]=Line(Point(x1,y1),Point(x2,y2));
79         }
80         bool flag=false;
81         for(int i=0;i<n;i++){
82             for(int j=0;j<n;j++){
83                 if(work(Line(line[i].s,line[j].e),n)||work(Line(line[i].s,line[j].s),n)||work(Line(line[i].e,line[j].e),n)||work(Line(line[i].e,line[j].s),n)){
84                     flag=true;
85                     break;
86                 }
87             }
88             if(flag) break;
89         }
90         if(flag) puts("Yes!");
91         else puts("No!");
92     }
93     return 0;
94 }

?

轉載于:https://www.cnblogs.com/ITUPC/p/5851135.html

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

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

相關文章

JavaOne正在重建動力

在JavaOne上度過了一個非常忙碌的一周&#xff0c;今年的活動有很多讓人喜歡的地方。 有很多驚喜的公告&#xff0c;很多很好的內容/會議&#xff0c;并且在場地和組織上都有很多改進。 對于一直耐心等待我發表我所有演講的人們&#xff0c;我為您的延遲表示歉意……給4個演講一…

tensorflow http調用_《TensorFlow 內核剖析》筆記——系統架構

3 系統架構系統整體組成&#xff1a;Tensorflow的系統結構以C API為界&#xff0c;將整個系統分為前端和后端兩個子系統&#xff1a;前端構造計算圖后端執行計算圖&#xff0c;可再細分為&#xff1a;運行時&#xff1a;提供本地模式和分布式模式計算層&#xff1a;由kernal函數…

SGU 187.Twist and whirl - want to cheat( splay )

維護一個支持翻轉次數M的長度N的序列..最后輸出序列.1<N<130000, 1<M<2000splay裸題...-------------------------------------------------------------#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int ma…

練習一萬小時成天才

隨著暢銷書《異類》的流行&#xff0c;“練習一萬小時成天才”這個口號現在是盡人皆知。也許仍然有不少人相信那些不世出的天才必有天生的神秘能力&#xff0c;但科學家通過大量的調查研究已經達成共識&#xff0c;那就是所有頂級高手都是練出來的。不但如此&#xff0c;最近幾…

(轉)數據流圖

轉自:http://jingyan.baidu.com/article/4f34706eefdb04e387b56deb.html 數據流圖4種圖元 數據流圖的實例 轉載于:https://www.cnblogs.com/wrencai/p/5852389.html

從CLI監視OpenJDK

目前&#xff0c;我大部分時間在Java虛擬機 &#xff08;JVM&#xff09;內或周圍進行大量工作&#xff0c;大部分時間是在Linux上。 當事情變得不對勁并且我試圖確定原因時&#xff0c;我接觸了Java性能分析工具。 這些工具有兩種形式&#xff0c;一種是精美的GUI&#xff08;…

python數據庫優化_python | Mysql性能優化一

對mysql優化是一個綜合性的技術&#xff0c;主要包括表的設計合理化(符合3NF)添加適當索引(index) [四種: 普通索引、主鍵索引、唯一索引unique、全文索引]分表技術(水平分割、垂直分割)讀寫[寫: update/delete/add]分離存儲過程 [模塊化編程&#xff0c;可以提高速度]對mysql配…

MySQL中文亂碼問題

項目中用到MySQL數據庫時中文出現亂碼問題&#xff08;中文字符都變成了&#xff1f;&#xff09;解決&#xff1a; 1、統一項目與數據庫的編碼&#xff0c;項目中用的是UTF-8因此我的把數據庫的編碼統一成UTF-8 修改方式&#xff1a;修改 MySQL根目錄中的 my.ini 文件替換d…

json與字符串互轉

1 字符串轉JSON var objeval((str"))var objJSON.parse(str)var objstr.parseJSON()2 JSON轉字符串 var strobj.toJSONString()var strJSON.stringify(obj)轉載于:https://www.cnblogs.com/liu-xia/p/5050878.html

使用RequestFactory API進行Spring GWT集成

從GWT 2.4開始&#xff0c;將RequestFactory API與后端的Spring服務集成很容易&#xff0c;您需要做的就是在服務器上創建一個自定義ServiceLocator&#xff0c;GWT將使用它來正確定位被調用的服務&#xff1a; public class SpringServiceLocator implements ServiceLocator {…

C++實例講解Binder通信

binder是android里面的通信機制&#xff0c;這就不說它如何如何好了&#xff0c;Goog已經說過了&#xff0c;這里不多說。binder是一個面向對象的編程方法&#xff0c;大量使用虛函數類。最近研究binder看到一網友寫的&#xff0c;就借鑒一下。這個例子很好的解釋里binder通信關…

2014編程之美初賽第一場

題目1 : 焦距 時間限制:2000ms單點時限:1000ms內存限制:256MB描述 一般來說&#xff0c;我們采用針孔相機模型&#xff0c;也就是認為它用到的是小孔成像原理。 在相機坐標系下&#xff0c;一般來說&#xff0c;我們用到的單位長度&#xff0c;不是“米”這樣的國際單位&#x…

高中python公開課怎么上好_如何上好高中英語公開課

談如何上好高中英語公開課對青年教師來說&#xff0c;開一節公開課&#xff0c;如同完成一次蛻變&#xff0c;累掉一層皮&#xff0c;有著刻骨銘心的陣痛&#xff0c;但換來的是突飛猛進的專業成長。可以說&#xff0c;公開課是青年教師培訓的有效途徑&#xff0c;是名師培養的…

Codeforces Round #261 (Div. 2) - E (459E)

題目連接&#xff1a;http://codeforces.com/contest/459/problem/E 題目大意&#xff1a;給定一張有向圖&#xff0c;無自環無重邊&#xff0c;每條邊有一個邊權&#xff0c;求最長嚴格上升路徑長度。(1≤n&#xff0c;m≤3 *10^5) 初見此題覺得以邊為點&#xff0c;以點為邊&…

回收對象以提高性能

總覽 在上一篇文章中&#xff0c;我說過對象反序列化更快的原因是由于使用了回收對象。 由于兩個原因&#xff0c;這可能令人驚訝&#xff1a;1&#xff09;相信如今創建對象是如此之快&#xff0c;無關緊要或與回收自己一樣快&#xff0c;2&#xff09;默認情況下&#xff0c;…

jquery GET POST

<!DOCTYPE html> <html> <head> <meta charset"UTF-8"> <head> <!--引入百度庫--> <script src"http://libs.baidu.com/jquery/1.10.2/jquery.min.js"> </script> <title></title> <scrip…

C++高精度運算類bign (重載操作符)

大數據操作&#xff0c;有如下問題&#xff1a; 計算&#xff1a;45678913561232654213212314875231656511323132 456789135612326542132123*14875231656511323132 比較&#xff1a;7531479535511335666686565>753147953551451213356666865 ? long long類型存儲不了&…

oj系統格式錯誤_論文查重會不會檢查格式?【paperpp吧】

高等學校一般都會要求大學生在畢業時需要寫作畢業論文&#xff0c;并且會提前發出關于畢業論文的通知&#xff0c;在通知上一般會說明論文寫作的相關要求&#xff0c;其中就會規定論文的相關格式。當然&#xff0c;學校也會在通知中說明論文查重的相關事宜&#xff0c;那么論文…

JavaScript Cookies

相關&#xff1a;jquery-cookie cookie 是存儲于訪問者的計算機中的變量&#xff0c;常用來存儲用戶名字&#xff0c;密碼&#xff0c;日期&#xff0e; 示例&#xff1a; 1 document.cookie"usernameJohn Doe"; 2 document.cookie"usernameJohn Doe; expiresTh…

大數據 -- Hadoop集群搭建

Hadoop集群搭建 1.修改/etc/hosts文件 在每臺linux機器上&#xff0c;sudo vim /etc/hosts 編寫hosts文件。將主機名和ip地址的映射填寫進去。編輯完后&#xff0c;結果如下&#xff1a; 2.配置ssh&#xff0c;實現無密碼登錄 四臺虛擬機上&#xff0c;使用&#xff1a; ssh-ke…