hdu1558
關於線段相交的內容參考演算法導論p577
#include#include#includeusing namespace std;
int pre[1010],sum[1010];
struct point;
struct edge edge[1010];
int e;//邊數
int find(int x)
void merge(int a,int b)
}double xmult(point a,point b,point c)
bool onsegment(point a,point b,point c)
bool cross(point a,point b,point c,point d)
int main()
{ int i,j,k,t,n;
char s[10];
scanf("%d",&t);
while(t--)
{ scanf("%d",&n);e=0;
for(i=1;i<=n;i++) pre[i]=i,sum[i]=1;
for(i=1;i<=n;i++)
{ scanf("%s",s);
if(s[0]=='p'){
e++;
scanf("%lf%lf%lf%lf",&edge[e].a.x,&edge[e].a.y,&edge[e].b.x,&edge[e].b.y);
for(j=1;j
hdu 1558 線段相交判斷 並查集
2535437 2010 06 12 00 42 04 accepted 1558 109ms 256k 2695 b c t t include include include using namespace std struct point struct sdlxd 1002 int p 100...
hdu 1558 線段相交 並查集
題意 給你一些操作,p後邊輸入四個值,分別代表一條線段的起點 終點座標,當輸入q時,後邊輸入乙個整形值k,輸出第k條線段所在的集合中包含的線段的個數。解題思路 線段相交 並查集,sum i 表示i所在的線段集合中,i為根節點的線段總數。在合併時可以更新。include includeusing na...
hdu1558 並查集 判斷線段相交
簡單的計算幾何題,判斷兩線段是否相交。將相交的兩線段使用並查集歸到一類中。查詢時輸出線段對應集合中元素的個數。includestruct point struct segmentnode 1010 int n,parent 1010 int getabs int value int getparen...