题目

思路来源
tourist代码
题解

给每行的一段创建一条线段
相邻行线段相交的话就合并一下
记最底下一行的线段点号是1(y=-1所在的行的线段,与(-1,-1)联通)
最后答案就是和点号1不在同一个并查集内的线段长度之和
合在一起的都是在多边形外的,
只有没合到的部分才是在多边形内的
代码
//#include<bits/stdc++.h>
#include<iostream>
#include<cstdio>
#include<vector>
#include<map>
#include<queue>
#include<set>
using namespace std;
#define rep(i,a,b) for(int i=(a);i<=(b);++i)
#define per(i,a,b) for(int i=(a);i>=(b);--i)
typedef long long ll;
typedef double db;
typedef pair<int,int> P;
#define fi first
#define se second
#define pb push_back
#define dbg(x) cerr<<(#x)<<":"<<x<<" "

最低0.47元/天 解锁文章
812

被折叠的 条评论
为什么被折叠?



