程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> UVA 11722(概率+幾何)

UVA 11722(概率+幾何)

編輯:C++入門知識

UVA 11722(概率+幾何)


 

Problem

12345

Solution

求概率方法就是lrj的方法。怎麼求面積比,又不要分太多情況討論呢?首先,線段與直線相交怎麼判斷,直線與直線求交點怎麼求,然後,怎麼把四邊形的面積轉換為三個三角形面積相加,怎麼判斷兩條直線之間沒有夾四邊形的情況?解決這些情況就行了,基本模板大白書都有。

My code

//Hello. I'm Peter.
#pragma comment(linker, /STACK:102400000,102400000)
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
typedef long long ll;
#define peter cout<'9'||ch<'0'){if(ch=='-')f=-1;ch=getchar();}
    while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
    return x*f;
}
const double eps=1e-9;
int dcmp(double x){
    if(fabs(x)&res){
    res.clear();
    for(int i=1;i<=4;i++){
        if(!Line_Inter_Segment(l,seg[i])) continue;
        Point p1=Poi_LineInterLine(l.p,l.v,seg[i].p1,seg[i].p2-seg[i].p1);
        int len=(int)res.size();
        bool ok=true;
        for(int j=0;jres;

        double ansS=abs(t2-t1)*abs(s2-s1);
        int len;
        get_p(l1,res);
        len=(int)res.size();
        if(len>1){
            sort(res.begin(),res.end(),comp);
            ansS-=Square_Triangle(res[0],p1,p4);
            ansS-=Square_Triangle(res[0],res[1],p4);
            ansS-=Square_Triangle(res[1],p3,p4);
        }
        if(p2.y>=p2.x+w) ansS-=abs(t2-t1)*abs(s2-s1);

        get_p(l2,res);
        len=(int)res.size();
        if(len>1){
            sort(res.begin(),res.end(),comp);
            ansS-=Square_Triangle(res[0],p1,p2);
            ansS-=Square_Triangle(res[0],res[1],p2);
            ansS-=Square_Triangle(res[1],p2,p3);
        }
        if(p4.y<=p4.x-w) ansS-=abs(t2-t1)*abs(s2-s1);
        ansS/=(abs(t2-t1)*abs(s2-s1));
        printf(%.8f
,ansS);
    }
    return 0;
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved