题目链接:https://vjudge.net/problem/POJ-1127
题目大意:
给出n条线段,线段相交即连通,判断任意两条线段是否连通
题目解析:
首先根据线段相交得出一个邻接矩阵,
然后根据Floyd算法,得出一个更直接的直接能看出两条线段是否相连的邻接矩阵
也可以用BFS
AC代码:
#include<iostream>
#include<cstring>
#include<queue>
#include<cmath>
#include<algorithm>
using namespace std;
struct Point {
double x,y;
Point(double x=0,double y=0):x(x),y(y){}
};
Point p[200];
typedef Point Vector;
Vector operator + (Vector A,Vector B){
return Vector(A.x+B.x,A.y+B.y);
}
Vector operator - (Vector A,Vector B){
return Vector(A.x-B.x,A.y-B.y);
}
Vector operator * (Vector A,double p){
return Vector(A.x*p,A.y*p);
}
Vector operator / (Vector A,double p){
return Vector(A.x/p,A.y/p);
}
bool operator < (const Point &a,const Poin