bzoj2391Cirno的忧郁 treap+三角剖分
来源:互联网 发布:三维人像建模软件 编辑:程序博客网 时间:2024/05/15 23:44
好强啊这题,只能%题解。
因为题目中不存在三点共线的情况
先设p0(-10000,-10000),然后将其他点极角排序(如果用最左下的点后面计算时还需要特殊处理)
f[i][j]表示0,i,j这个三角形内的点数,ij为排序后的标号
这一步可以预处理,做法是对于每个i建一棵平衡树,将排在它以后的j逐个加入平衡树,平衡树的关键字为i为基点的极角,可以发现j在平衡树中的排名就是三角形内部的点数+1
然后将三角形内部的点数当做其面积,用叉乘求多边形面积的方法计算内部总点数,再将边上额外计算的点减掉,可以发现,没有减去的点数等于顺时针的边数-1
总复杂度O(n^2logn + m*s)
代码的话剪贴板好像挂了,等好了再传上来。
阅读全文
0 0
- bzoj2391Cirno的忧郁 treap+三角剖分
- BZOJ2391:Cirno的忧郁(无旋Treap+三角剖分)
- [BZOJ2391]Cirno的忧郁-三角剖分
- bzoj2391: Cirno的忧郁【三角剖分+Splay】
- 凸多边形的三角剖分
- 凸多边形的三角剖分
- 凸多边形的三角剖分
- 关于三角剖分的研究
- 凸多边形的最优三角剖分问题
- 三角剖分的详细介绍
- 三角剖分算法的数学理解
- 凸多边形的最优三角剖分
- Delaunay三角剖分
- Delaunay三角剖分
- 三角剖分
- 最优三角剖分
- 三角剖分详解
- Delaunay三角剖分
- uva 1225 Digit Counting
- linked-list-cycle-ii
- 局域网内服务端提供一个目录,客户端选择指定文件并进行下载
- linux下c++sleep函数
- Git常用操作系列(2)
- bzoj2391Cirno的忧郁 treap+三角剖分
- Java基础
- static(静态)变量
- C#和C++中类实例化的差异——从C#到C++爬坑ing
- 题目1490:字符串链接
- MyBatis基本操作
- [bzoj4832]抵制克苏恩 概率dp
- 文本压缩过滤器实现
- Linux账号与身份管理