题目链接:
题意:
给你与坐标轴平行的线段,问你交点数
题解:
实质就是扫描线,这里我用树状数组来记录,所有线段按X坐标排序,遇到横线段的左端点就对应y坐标+1,遇到右端点,就对应y坐标-1,遇到竖线段,就询问对应的区间段
1 #include2 #define F(i,a,b) for(int i=a;i<=b;++i) 3 using namespace std; 4 typedef long long ll; 5 6 const int N=1e5+7; 7 int sum[N*4],n,t,nn,has[N*4],cnt,x1,x2,y1,y2,ed,hed; 8 9 struct seg{10 int x,l,r,op;11 bool operator<(const seg &b)const{ return x