日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

POJ - 2826 An Easy Problem?!(计算几何,好题)

發(fā)布時間:2024/4/11 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 POJ - 2826 An Easy Problem?!(计算几何,好题) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

題目鏈接:點擊查看

題目大意:給出兩條線段,問組成的容器最多能接多少雨水

題目分析:既然是接雨水,那么肯定只能是漏斗狀,很容易排除掉兩種情況:

  • 其中有一條線段平行于x軸
  • 兩條線段不相交
  • 還有一種比較難想的情況kuangbin大神提到了,那就是封口的情況,對應就是以下三種情況:

    單獨討論之后,剩下的情況就一定有解了,直接按照三角形的面積計算就是答案了

    注意結果需要加上一個eps防止出現(xiàn)-0.00的情況,我猜的,不加的話會WA,加上就A了,玄學

    代碼:

    #include<iostream> #include<cstdio> #include<string> #include<ctime> #include<cmath> #include<cstring> #include<algorithm> #include<stack> #include<queue> #include<map> #include<set> #include<sstream> using namespace std;typedef long long LL;const int inf=0x3f3f3f3f;const int N=60;const double eps = 1e-8;int sgn(double x){if(fabs(x) < eps)return 0;if(x < 0)return -1;else return 1; }struct Point{double x,y;Point(){}Point(double _x,double _y){x = _x;y = _y;}void input(){scanf("%lf%lf",&x,&y);}Point operator -(const Point &b)const{return Point(x-b.x,y-b.y);}//叉積double operator ^(const Point &b)const{return x*b.y - y*b.x;}//點積double operator *(const Point &b)const{return x*b.x + y*b.y;}//返回兩點的距離double distance(Point p){return hypot(x-p.x,y-p.y);} };struct Line{Point s,e;Line(){}Line(Point _s,Point _e){s = _s;e = _e;}void input(){s.input();e.input();}//求線段長度double length(){return s.distance(e);}//`兩線段相交判斷`//`2 規(guī)范相交`//`1 非規(guī)范相交`//`0 不相交`int segcrossseg(Line v){int d1 = sgn((e-s)^(v.s-s));int d2 = sgn((e-s)^(v.e-s));int d3 = sgn((v.e-v.s)^(s-v.s));int d4 = sgn((v.e-v.s)^(e-v.s));if( (d1^d2)==-2 && (d3^d4)==-2 )return 2;return (d1==0 && sgn((v.s-s)*(v.s-e))<=0) ||(d2==0 && sgn((v.e-s)*(v.e-e))<=0) ||(d3==0 && sgn((s-v.s)*(s-v.e))<=0) ||(d4==0 && sgn((e-v.s)*(e-v.e))<=0);}//`直線和線段相交判斷`//`-*this line -v seg`//`2 規(guī)范相交`//`1 非規(guī)范相交`//`0 不相交`int linecrossseg(Line v){int d1 = sgn((e-s)^(v.s-s));int d2 = sgn((e-s)^(v.e-s));if((d1^d2)==-2) return 2;return (d1==0||d2==0);}//`求兩直線的交點`//`要保證兩直線不平行或重合`Point crosspoint(Line v){double a1 = (v.e-v.s)^(s-v.s);double a2 = (v.e-v.s)^(e-v.s);return Point((s.x*a2-e.x*a1)/(a2-a1),(s.y*a2-e.y*a1)/(a2-a1));}//點到直線的距離double dispointtoline(Point p){return fabs((p-s)^(e-s))/length();} }l1,l2;int main() { // freopen("input.txt","r",stdin); // ios::sync_with_stdio(false);int w;cin>>w;while(w--){l1.input();l2.input();if(sgn(l1.s.y-l1.e.y)==0||sgn(l2.s.y-l2.e.y)==0)//有一條線平行于x軸 {puts("0.00");continue;}if(sgn(l1.s.y-l1.e.y)<0)swap(l1.s,l1.e);if(sgn(l2.s.y-l2.e.y)<0)swap(l2.s,l2.e);if(l1.segcrossseg(l2)==0)//不相交 {puts("0.00");continue;}if(l1.segcrossseg(Line(Point(l2.s.x,100000),l2.s))||l2.segcrossseg(Line(Point(l1.s.x,100000),l1.s)))//口被封上 {puts("0.00");continue;}double ans1=1e10,ans2=1e10;Point point=l1.crosspoint(l2);//交點Line temp1=Line(l2.s,Point(100000,l2.s.y));//與x軸平行,且過l2上面的點的直線 Line temp2=Line(l1.s,Point(100000,l1.s.y));//與x軸平行,且過l1上面的點的直線 if(temp1.linecrossseg(l1)){Point temp=temp1.crosspoint(l1);//當前三個點構成三角形temp point l2.s ans1=0.5*(temp1.dispointtoline(point)*temp.distance(l2.s));}if(temp2.linecrossseg(l2)){Point temp=temp2.crosspoint(l2);//當前三個點構成三角形temp point l1.s ans2=0.5*(temp2.dispointtoline(point)*temp.distance(l1.s));}printf("%.2f\n",min(ans1,ans2)+eps);}return 0; }

    ?

    總結

    以上是生活随笔為你收集整理的POJ - 2826 An Easy Problem?!(计算几何,好题)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 久久国产精品久久久久久电车 | 一极毛片 | 欧美成人一区二免费视频软件 | 免费a网址 | 国产91一区二区三区 | 浮力影院国产第一页 | 中文字幕狠狠干 | 欧美国产日韩在线观看成人 | 人人澡人人澡 | 自拍偷拍欧美视频 | 黄色网页在线播放 | 91免费网址| 91亚洲精品国偷拍自产在线观看 | 亚洲xxxx视频| av黄色免费在线观看 | 高清一区二区视频 | 欧美精品黄色片 | 久久久青草 | 免费观看黄色一级视频 | 久草香蕉视频 | 国产农村妇女精品久久久 | 亚洲精品欧美在线 | 成了校长的性脔h文 | 日本午夜电影网站 | 男人日女人免费视频 | 涩涩涩综合 | 丁香五香天堂网 | 精品欧美久久 | 国产精品资源 | 国产男女猛烈无遮挡免费观看网站 | 欧美不卡一区二区 | 91国内精品久久久久 | 亚洲人免费 | 欧美日韩精品一区二区三区四区 | 午夜精品久久久久久久96蜜桃 | 亚洲人体视频 | 国产裸体无遮挡 | 青青草视频在线观看 | 一区二区三区视频网 | 亚洲一级av无码毛片精品 | 99精品视频在线免费观看 | 一级在线看 | 成人国产片女人爽到高潮 | 亚洲一区二区三区观看 | 日韩精品一区二区三区网站 | www,五月天,com | 成人在线免费观看网站 | 成人免费黄色网址 | 国产精品视频自拍 | 一级片欧美 | 中文字幕成人在线 | 国产精品一品二区三区的使用体验 | 五月婷婷久久久 | 国产91精品看黄网站在线观看 | 男人天堂电影 | 一道本一区二区 | 少妇无码一区二区三区 | 国产精品69久久久久孕妇欧美 | 亚洲h在线观看 | 日韩免费看片 | 中文字幕日韩在线视频 | 欧美一区二区三区在线看 | 欧美中文字幕在线视频 | 国产欧美日韩一区 | 日本大胆欧美人术艺术 | 国产一二三 | 爱情岛亚洲品质自拍极速福利网站 | 男插女视频在线观看 | 日韩在线黄色 | 夜夜成人| 国产三级网站 | 国产视频第一区 | 欧美一区二区久久久 | 九九资源网 | 日韩欧美国产一区二区三区 | 乱精品一区字幕二区 | 国产乱妇乱子 | 亚洲国产精品成人 | 伊人网免费视频 | 欧美专区日韩专区 | 久久久久久中文字幕 | 免费的一级片 | 国产一区二区三区视频播放 | 日韩特黄毛片 | 欧美成人一区二免费视频软件 | 国产成人在线网站 | 国产图片一区 | 欧美在线色 | 国产深夜福利在线 | 激情久久久久久久 | 精品人妻一区二区三区麻豆91 | 五月婷婷爱| 欧美三级图片 | 成人黄色在线观看视频 | 久久亚洲精品国产 | 开心综合网 | 爱爱色图 | 欧美日韩高清一区 | 97高清国语自产拍 |