HDU4629掃瞄線求三角形重疊K次面積

2021-06-17 17:35:23 字數 995 閱讀 1965

先把所有的三角形的點和他們之間產生的交點求出來,按x軸從小到大排序,然後每相鄰的兩個點會產生乙個區間,在該區間中,從y軸最上面往下掃瞄,如果碰到進入三角形的邊,當前state++,表示重合數+1,如果碰到乙個離開三角形的邊,當前state--,表示重合數-1,對於每次碰到乙個三角形的邊,求出該邊在這個區間中的上方的距離,要麼是梯形,要麼是三角形。

#include #include #include #include #include #include #define eps 1.0e-8

#define zero(x) (((x)>0?(x):-(x))min(b.a.y,b.b.y);

}return max(a.a.y,a.b.y) > max(b.a.y,b.b.y);

}double ans[111];

int main()

}for(int i = 0 ; i < n ; i ++)}}

}}sort(point,point+cnt,cmp);

for(int i = 0 ; i < cnt - 1; i ++)

else

tp[1].in = 1;

seg[now++] = tp[0];

seg[now++] = tp[1];}}

sort(seg, seg + now, cmpy);

int state = 0;

for(int j = 0; j < now - 1; j++)

else

state--;

ans[state] += d*(seg[j].a.y-seg[j+1].a.y + seg[j].b.y-seg[j+1].b.y)/2.0;}}

for(int i = 1; i <= n; i ++)

}return 0;

}

求大三角形中三角形個數

一道筆試程式設計題要求求乙個大三角形中所有小三角形的個數,大約是下面這種情況 首先想到是的將問題由求邊長為n的三角形個數 求邊長為n 1的三角形個數 求邊長為1的三角形個數 1,回溯求得所有三角形個數。但是再仔細一看因為有重疊三角形和倒置的三角形,所以這個方法不可行。接著找到三角形個數由三部分組成 ...

求三角形性質

作 者 b23 完成日期 2014年 10 月 31 日 版 本 號 v1.0 輸入描述 輸入三角形的三邊 a,b,c,值,根據其數值,判斷是否能構成三角形,若能,還有判斷其三角形的性質 等邊三角形,等腰三角形,直角三角形和任意三角形。using system using system.collec...

JSP求三角形面積

2 實驗1 60分鐘 2.1 實驗目的 計算三角形的面積 2.2 實驗任務 1 定義乙個可以輸入三角形三條邊的 html頁面 2 定義乙個可以計算三角形面積的 jsp頁面 3 顯示三角形的面積 2.3 實驗要求 1 三角形的邊必須為數字,如果三條邊沒有賦初值,則三條邊賦初值為零 2 判斷三角形的三條...