国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

poj1039 計(jì)算幾何-交點(diǎn),叉積

2019-11-14 09:55:26
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

http://poj.org/PRoblem?id=1039 題意:給出一個(gè)曲折的管道,求出光線能夠到達(dá)的管道的最遠(yuǎn)點(diǎn)的橫坐標(biāo)。 思路:能夠到達(dá)最遠(yuǎn)點(diǎn)的直線必然通過(guò)管道的一個(gè)上管道壁的折點(diǎn)和一個(gè)下管道壁的折點(diǎn),枚舉所有的這樣的折點(diǎn),求出最遠(yuǎn)能夠到達(dá)的地方的橫坐標(biāo)。

#include <iostream>#include <cstdio>#include <algorithm>#include <cstring>#include <cmath>using namespace std;int n;double maxx= -(1<<30);const int maxn = 1e6+10;const double precision = 1e-3;const double inf = (1<<30);struct point{ double x; double y;}up[maxn],down[maxn];int dblcmp(double p){ if(fabs(p)<precision) return 0; return p>0?1:-1;}double det(double x1,double y1,double x2,double y2){ return x1*y2-x2*y1;}double cross(point A,point B,point P){ return det(B.x-A.x , B.y-A.y , P.x-A.x , P.y-A.y);}bool segcross(point A,point B,point C,point D){ return (dblcmp(cross(A,B,C)) * dblcmp(cross(A,B,D)) <= 0);}double intersection(point A,point B,point C,point D){ double area1=cross(A,B,C); double area2=cross(A,B,D); int c=dblcmp(area1); int d=dblcmp(area2); if(c*d<0) return (area2*C.x - area1*D.x)/(area2-area1); if(c*d==0) if(c==0) return C.x; else return D.x; return -inf;}void init(){ maxx = -(1<<30); for(int i = 1;i <= n;i++){ scanf("%lf%lf",&up[i].x,&up[i].y); down[i].x=up[i].x; down[i].y=up[i].y-1; }}void sov(){ bool flag=false; int k; for(int i = 1;i <= n;i++){ for(int j = 1;j <= n;j++) if(i!=j){ for(k=1; k <= n;k++) if(!segcross(up[i],down[j],up[k],down[k])) break; if(k > n){ flag=true; break; } else{ if(k < max(i,j)) continue; double temp1=intersection(up[i],down[j],up[k],up[k-1]),temp2 = intersection(up[i],down[j],down[k],down[k-1]); maxx = max(max(temp1,maxx),temp2); } } if(flag) break; } if(flag) printf("Through all the p
發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 额尔古纳市| 黔江区| 贺兰县| 博客| 闽清县| 怀远县| 文化| 江永县| 城步| 东乡| 潞西市| 呼图壁县| 民和| 平武县| 连平县| 广东省| 潞城市| 苍梧县| 磐安县| 云南省| 中阳县| 凤庆县| 旬阳县| 乌兰察布市| 维西| 西藏| 思南县| 礼泉县| 太康县| 赤壁市| 会东县| 宜宾县| 东乌珠穆沁旗| 那坡县| 赤峰市| 湘潭县| 梧州市| 鄂州市| 宣汉县| 桐梓县| 丽水市|