摘要:
题意:计算多边形核的面积。分析:半平面交的模板。有两个问题要注意,1.题目没说多边形点的顺序是顺时针还是逆时针,要先用面积的正负来判断点的顺序。2.题目中说坐标都在16位整数范围内,也就是说半平面交模板中初始的无限大平面的四个顶点设为±1e5就可以了,原本设为±1e15无限WA。#include <cstdio>#include <algorithm>#define vector pointusing std::swap;struct point{ double x,y; point(double xx = 0,double yy = 0) { x 阅读全文
摘要:
题意:判断一个多边形内是否存在核。分析:半平面交的模板题。用半平面交来求多边形的核可以用在线算法还实现,这个算法把问题分解成凸多边形与半平面相交(这个半平面的分界线就是题目中的多边形的每一条边)。求凸多边形与半平面的交集的做法是,先定义一个空的多边形,枚举多边形的点,若点在半平面内就加到这里定义的多边形的点集里,若与多边形的边相交就计算交点,再把交点也放到点集里。#include <cstdio>#define vector pointstruct point{ double x,y; point(double xx = 0,double yy = 0) { x... 阅读全文