亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

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

POJ 1408-Fishnet(計算幾何-根據交點求多邊形面積)

2019-11-11 06:50:38
字體:
來源:轉載
供稿:網友

Fishnet
Time Limit: 1000MS Memory Limit: 10000K
Total Submissions: 2225 Accepted: 1401

Description

A fisherman named Etadokah awoke in a very small island. He could see calm, beautiful and blue sea around the island. The PRevious night he had encountered a terrible storm and had reached this uninhabited island. Some wrecks of his ship were spread around him. He found a square wood-frame and a long thread among the wrecks. He had to survive in this island until someone came and saved him. In order to catch fish, he began to make a kind of fishnet by cutting the long thread into short threads and fixing them at pegs on the square wood-frame. He wanted to know the sizes of the meshes of the fishnet to see whether he could catch small fish as well as large ones. The wood frame is perfectly square with four thin edges on meter long: a bottom edge, a top edge, a left edge, and a right edge. There are n pegs on each edge, and thus there are 4n pegs in total. The positions of pegs are represented by their (x,y)-coordinates. Those of an example case with n=2 are depicted in figures below. The position of the ith peg on the bottom edge is represented by (ai,0). That on the top edge, on the left edge and on the right edge are represented by (bi,1), (0,ci) and (1,di), respectively. The long thread is cut into 2n threads with appropriate lengths. The threads are strained between (ai,0) and (bi,1),and between (0,ci) and (1,di) (i=1,...,n). You should write a program that reports the size of the largest mesh among the (n+1)2 meshes of the fishnet made by fixing the threads at the pegs. You may assume that the thread he found is long enough to make the fishnet and the wood-frame is thin enough for neglecting its thickness.  

Input

The input consists of multiple sub-problems followed by a line containing a zero that indicates the end of input. Each sub-problem is given in the following format. n a1 a2 ... an b1 b2 ... bn c1 c2 ... cn d1 d2 ... dn you may assume 0 < n <= 30, 0 < ai,bi,ci,di < 1

Output

For each sub-problem, the size of the largest mesh should be printed followed by a new line. Each value should be represented by 6 digits after the decimal point, and it may not have an error greater than 0.000001.

Sample Input

20.2000000 0.60000000.3000000 0.80000000.1000000 0.50000000.5000000 0.600000020.3333330 0.66666700.3333330 0.66666700.3333330 0.66666700.3333330 0.666667040.2000000 0.4000000 0.6000000 0.80000000.1000000 0.5000000 0.6000000 0.90000000.2000000 0.4000000 0.6000000 0.80000000.1000000 0.5000000 0.6000000 0.900000020.5138701 0.94762830.1717362 0.17574120.3086521 0.70223130.2264312 0.534534310.40000000.60000000.30000000.50000000

Sample Output

0.2156570.1111120.0789230.2792230.348958

Source

Japan 2001

題目意思:

有一個1×1的木質方格,邊框上有釘子,下上左右分別標記為abcd,分別給出這四個方向的N個釘子的坐標ai、bi、ci和di,則其坐標分別是(ai,0)(bi,1),(0,ci)和(1,di)。

將對應的ai和bi、ci和di位置上的釘子用網線連起來,編織成一個漁網,求漁網中被網線分割成的四邊形網眼的最大面積。

解題思路:

求出網線之間形成的交點坐標,用二維數組保存起來,然后枚舉每個四邊形的四個頂點,計算其面積。

#include<iostream>#include<cstdio>#include<iomanip>#include<cmath>using namespace std;const int INF=1e9;const int MAXN=40;const double eps=1e-3;struct point{    double x,y;} ;point a[MAXN], b[MAXN], c[MAXN], d[MAXN];double det(double x1,double y1,double x2,double y2){    return x1*y2-x2*y1;}double cir(point A,point B,point C,point D)//計算 AB x CD{    return det(B.x-A.x, B.y-A.y, D.x-C.x, D.y-C.y);}double Area(point A,point B,point C,point D){    return fabs(0.5*cir(A,B,A,C))+fabs(0.5*cir(A,B,A,D));}point intersection(point A,point B,point C,point D)//求AB與CD的交點{    point p;    double area1=cir(A,B,A,C);    double area2=cir(A,B,A,D);    p.x=(area2*C.x-area1*D.x)/(area2-area1);//交點計算公式    p.y=(area2*C.y-area1*D.y)/(area2-area1);    return p;}int main(){#ifdef ONLINE_JUDGE#else    freopen("F:/cb/read.txt","r",stdin);    //freopen("F:/cb/out.txt","w",stdout);#endif    ios::sync_with_stdio(false);    cin.tie(0);    int n;    a[0].x=a[0].y=b[0].x=b[0].y=c[0].x=c[0].y=d[0].x=d[0].y=0;    point p[MAXN][MAXN];//(n+2)*(n+2)個交點    while(cin>>n&&n)    {        p[0][0].x=p[0][0].y=0;        p[0][n+1].x=1,p[0][n+1].y=0;        p[n+1][0].x=0,p[n+1][0].y=1;        p[n+1][n+1].x=p[n+1][n+1].y=1;        double ans=-1;//面積        for(int i=0; i<4; ++i)            for(int j=1; j<=n; ++j)            {                double t;                cin>>t;                switch(i)                {                case 0:                    a[j].x=t;                    a[j].y=0;                    p[0][j].x=t;                    p[0][j].y=0;                    break;                case 1:                    b[j].x=t;                    b[j].y=1;                    p[n+1][j].x=t;                    p[n+1][j].y=1;                    break;                case 2:                    c[j].x=0;                    c[j].y=t;                    p[j][0].x=0;                    p[j][0].y=t;                    break;                case 3:                    d[j].x=1;                    d[j].y=t;                    p[j][n+1].x=1;                    p[j][n+1].y=t;                    break;                }            }        int k=1,l=1;        for(int i=1; i<n+1; ++i)//計算交點        {            for(int j=1; j<n+1; ++j)            {                p[i][j]=intersection(a[k],b[k],c[l],d[l]);                ++k;            }            k=1;            ++l;        }        for(int i=0; i<n+1; ++i)//四個一組計算面積        {            for(int j=0; j<n+1; ++j)            {                /*cout<<i<<" "<<j<<" 點="<<"("<<p[i][j].x<<","<<p[i][j].y<<") ";                cout<<"("<<p[i][j+1].x<<","<<p[i][j+1].y<<") ";                cout<<"("<<p[i+1][j].x<<","<<p[i+1][j].y<<") ";                cout<<"("<<p[i+1][j+1].x<<","<<p[i+1][j+1].y<<") "<<endl;*/                //double ar=Area(p[i][j],p[i][j+1],p[i+1][j],p[i+1][j+1]);                double ar=Area(p[i][j],p[i+1][j+1],p[i+1][j],p[i][j+1]);                //cout<<ar<<endl;                if(ar>ans) ans=ar;            }        }        //cout<<"答案:";        cout<<fixed<<setprecision(6)<<ans<<endl;    }    return 0;}/*20.2000000 0.60000000.3000000 0.80000000.1000000 0.50000000.5000000 0.600000020.3333330 0.66666700.3333330 0.66666700.3333330 0.66666700.3333330 0.666667040.2000000 0.4000000 0.6000000 0.80000000.1000000 0.5000000 0.6000000 0.90000000.2000000 0.4000000 0.6000000 0.80000000.1000000 0.5000000 0.6000000 0.900000020.5138701 0.94762830.1717362 0.17574120.3086521 0.70223130.2264312 0.534534310.40000000.60000000.30000000.50000000*/


上一篇:文章標題

下一篇:骨牌鋪方格

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
粉嫩av一区二区三区免费野| 欧美第一淫aaasss性| 欧美另类69精品久久久久9999| 色久欧美在线视频观看| 国语对白做受69| 国产亚洲欧美一区| 日韩av免费在线看| 狠狠躁18三区二区一区| 欧美精品情趣视频| 国产日韩欧美影视| 91av视频导航| 欧美国产精品日韩| 97在线视频免费| 久久久成人的性感天堂| 777午夜精品福利在线观看| 欧美丝袜美女中出在线| 97精品视频在线观看| 国产一区二区免费| 日韩久久午夜影院| 国产成人综合一区二区三区| 日韩在线精品视频| 欧美色播在线播放| 亚洲欧美激情精品一区二区| 亚洲欧美资源在线| 欧美精品日韩三级| 国产精品福利网| 国产精品美女www爽爽爽视频| 91在线观看免费网站| 国产一区二区三区久久精品| 国产成人综合一区二区三区| 国产精品黄视频| 国产精品久久久久久久久久| 欧美日韩中文在线| 在线观看欧美成人| 国产在线久久久| 亚洲午夜未满十八勿入免费观看全集| 色av中文字幕一区| 日韩精品中文字幕在线观看| 91av福利视频| 亚洲国产97在线精品一区| 精品久久久久久久久久国产| 啪一啪鲁一鲁2019在线视频| 国产精品免费观看在线| 久久久久久久久久国产| 国产91成人在在线播放| 疯狂欧美牲乱大交777| 国产成人精品电影| 成人av色在线观看| 亚洲精品电影网站| 国产精品久久久久久久一区探花| 国产精品91在线观看| 亚洲国产精品人人爽夜夜爽| 日韩国产高清污视频在线观看| 欧美一级免费视频| 久久97精品久久久久久久不卡| 5566日本婷婷色中文字幕97| 黄色成人av网| 国产精品毛片a∨一区二区三区|国| 国产精品女人网站| 欧美一级淫片播放口| 久久99热精品这里久久精品| 亚洲一区二区久久久| 欧美成人中文字幕在线| 久久久久久高潮国产精品视| 午夜欧美不卡精品aaaaa| 国语自产精品视频在线看| 亚洲另类欧美自拍| 国产精品美女视频网站| 亚洲剧情一区二区| 欧美劲爆第一页| 成人h视频在线| 91精品国产综合久久久久久久久| 欧美国产日韩在线| 久久久伊人欧美| 午夜精品久久久久久99热软件| 亚洲免费一级电影| 91中文字幕一区| 久久久久久一区二区三区| 国产精品中文字幕久久久| 亚洲欧美日韩精品久久| 国产精品久久久久7777婷婷| 亚洲精品小视频在线观看| 精品国产一区二区三区久久狼5月| 欧美高清视频在线播放| 欧美大片大片在线播放| 欧美高清性猛交| 日韩精品欧美国产精品忘忧草| www.国产精品一二区| 午夜精品久久久99热福利| 中文国产成人精品久久一| 91精品国产99| 欧美日韩国产一区二区| 日本视频久久久| 国产精品video| 国产成+人+综合+亚洲欧美丁香花| 久久久精品影院| 久久99亚洲精品| 亚洲欧美国产制服动漫| 91av视频导航| 亚洲另类激情图| 国产欧美va欧美va香蕉在| 欧美在线观看www| 高清欧美性猛交xxxx| 日韩av电影在线网| 久久久久久久久久久人体| 日韩精品视频观看| 亚洲天堂第二页| 亚洲国产日韩欧美在线动漫| 一本色道久久综合亚洲精品小说| 色综合色综合久久综合频道88| 日韩激情视频在线| 亚洲成人久久网| 国外成人性视频| 久久人人看视频| 欧美一区视频在线| 亚洲电影第1页| 中文字幕精品一区二区精品| 欧美日韩另类字幕中文| 欧美另类69精品久久久久9999| 国产97在线亚洲| 亚洲天堂成人在线视频| 伊人久久久久久久久久久久久| 韩国欧美亚洲国产| 久久男人资源视频| 欧美三级欧美成人高清www| 亚洲一区二区三区sesese| 精品国产老师黑色丝袜高跟鞋| 国模视频一区二区| 亚洲老司机av| 日韩精品视频免费专区在线播放| 亚洲大胆人体视频| 亚洲欧美日本另类| 亚洲人a成www在线影院| 4438全国亚洲精品在线观看视频| 欧美日韩亚洲精品一区二区三区| 欧美日韩在线免费观看| 97精品一区二区视频在线观看| 亚洲人成网站色ww在线| 国产精品一区二区电影| 国产黑人绿帽在线第一区| 欧美成人亚洲成人| 国产精品第七十二页| 日韩国产欧美精品在线| 国产偷国产偷亚洲清高网站| 日韩在线观看你懂的| 欧美日韩国产在线看| 欧美性高潮床叫视频| 久久久久久有精品国产| 久久国产精品久久久| 亚洲国产精品字幕| 欧美精品在线网站| 欧美在线一级va免费观看| 日本三级韩国三级久久| 亚洲国产日韩欧美在线图片| 国产一区二区三区网站| 亚洲在线一区二区| 精品久久久国产精品999| 色先锋资源久久综合5566| 色婷婷成人综合| 亚洲日本aⅴ片在线观看香蕉| 欧美日韩国产一中文字不卡| 日韩美女写真福利在线观看| 国产一区二区黑人欧美xxxx| 欧美性xxxx极品高清hd直播|