A simple problem

 

题目地址
http://acm.hust.edu.cn/thx/problem.php?id=1425
题目描述:给定m个圆,n个点,求对于每个点,有多少圆包含了它(边界上不算)ans[i] 
对于任何一个点i,ans[i]保证<=100
分析:核心思想是扫描线,对每个圆,拆分成两个点,左边点+和右边点-
当一条扫描线经过时,如果遇到+,那么加入该点,如果遇到-点,删除该点
复杂度分析,如果没有最后一句话,这个题的复杂度是不能保证的,但是由于<=100的限制,也就是说
在扫描线滑动的任何一个时刻,对于一个询问某点的操作,其代价是不会很大的,
因为里面的存在的事件点不会很多的,当然这也只是从一个整体上的观察,实际上任然无法保证复杂度
但是由于其个数的限制,而使得答案存在且很稀疏,如果有更好的算法欢迎与我讨论 
主要过程,得到事件点,然后遍历所有点,吧x坐标<当前点的全都放到或删除在容器中
遍历容器,计数
 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值