Gym - 100781G Goblin Garden Guards (扫描线)
2024-09-08 00:31:52
题意:
n 只哥布林,每只哥布林都有一个位置坐标。
m 个炮台,每个炮台都有一个位置坐标和一个攻击半径。
如果一个哥布林在任何一个炮台的攻击范围内,都会被杀死。
求最后没有被杀死的哥布林的数量。
这题暴力加一些小小的优化可以爆过去。。。然后场上并不敢试。
标算是扫描线。炮台攻击范围内的每个横坐标都拉一个扫描线,把线的两端的点和哥布林的点一起加进一个数组。
然后排序,就会发现能被杀死的哥布林的点在一根线的两个端点之间。
直接扫一遍统计答案就可以了。注意存点的数组要开够。
另外就是。。。排序的时候 y 坐标从小到大排序就 WA, 改成从大到小就A了。。我也不知道为啥。
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <algorithm>
using namespace std; #define maxn 9000000 + 1000 struct Node
{
int x, y, type;
Node(int xx, int yy, int tt) : x(xx), y(yy), type(tt) {}
Node() {}
}a[maxn]; bool cmp(Node a, Node b)
{
if (a.x != b.x) return a.x < b.x;
if (a.y != b.y) return a.y > b.y;
return a.type > b.type;
} int getdis(int x, int y)
{
return round(floor(sqrt(x*x - y*y)));
} int tot = ; int main()
{
int n;
scanf("%d", &n);
for (int i = ; i <= n; i++)
{
tot++;
scanf("%d%d", &a[tot].x, &a[tot].y);
a[tot].type = ;
} int m;
scanf("%d", &m);
for (int i = ; i <= m; i++)
{
int x, y, r;
scanf("%d%d%d", &x, &y, &r);
for (int j = -r; j <= r; j++)
{
a[++tot] = Node(x+j, y+getdis(r, j), );
a[++tot] = Node(x+j, y-getdis(r, j), -);
}
} sort(a+, a++tot, cmp); int sum = , ans = ;
for (int i = ; i <= tot; i++)
{
sum += a[i].type;
if (a[i].type == && sum != )
ans++;
} printf("%d\n", n - ans);
}
最新文章
- 2013/10/24初学BOOST
- C# NamePipe使用小结
- 理解伪元素 :before和:after
- TortoiseSVN文件夹及文件状态图标不显示解决方法
- BestCoder Round #74
- jQuery_添加与删除元素
- Sql触发器脚本
- 可以有效防护XSS,sql注射,代码执行,文件包含等多种高危漏洞。
- [HNOI2002]营业额统计_Treap
- weblogic中配置数据源
- codevs 2606 约数和(分块优化数学公式 )
- [算法]从一道题引出variable-precision SWAR算法
- 记录在window平台安装python的第三库(py,whl)
- Spring的一些面试题(转)
- 巨蟒python全栈开发flask12项目开始4
- c++拷贝构造函数,深拷贝,浅拷贝,对象内存
- JavaScript - this详解 (三)
- 浏览器端 禁止 html 使用后退 或者替换后退功能..
- 洛谷 P2056 [ZJOI2007]捉迷藏 题解【点分治】【堆】【图论】
- 上传文件csv 导入功能
热门文章
- docker jetty启动时报错 failed setting default capabilities.
- P4878 道路修建-美国
- AJPFX关于JAVA StringBuffer的用法总结
- zuul 自定义路由映射规则
- 简单的Servlet结合Jsp实现请求和响应以及对doGet和doPost的浅析
- 常用快捷键—Webstorm
- 解决ajax 遇到session失效后自动跳转的问题
- Microsoft Exchange本地和Exchange Online可以与第三方服务共享
- SQLServer 2012 Always on配置全过程
- WinForm 窗体API移动 API阴影