hdu1558並查集 線段相交

2021-06-11 13:09:34 字數 754 閱讀 4298

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...