bzoj2391Cirno的忧郁 treap+三角剖分

7 篇文章 0 订阅
2 篇文章 0 订阅

好强啊这题,只能%题解。
因为题目中不存在三点共线的情况

先设p0(-10000,-10000),然后将其他点极角排序(如果用最左下的点后面计算时还需要特殊处理)

f[i][j]表示0,i,j这个三角形内的点数,ij为排序后的标号

这一步可以预处理,做法是对于每个i建一棵平衡树,将排在它以后的j逐个加入平衡树,平衡树的关键字为i为基点的极角,可以发现j在平衡树中的排名就是三角形内部的点数+1

然后将三角形内部的点数当做其面积,用叉乘求多边形面积的方法计算内部总点数,再将边上额外计算的点减掉,可以发现,没有减去的点数等于顺时针的边数-1

总复杂度O(n^2logn + m*s)
代码的话剪贴板好像挂了,等好了再传上来。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值