当前位置: 首页 > news >正文

南昌自主建站模板刚刚刚刚刚刚刚刚刚刚刚刚刚刚刚

南昌自主建站模板,刚刚刚刚刚刚刚刚刚刚刚刚刚刚刚,网站ui界面设计软件,企业网络设计毕业论文4407. 扫雷 - AcWing题库 题目描述 分析 此题目使用map等都会超时,所以我们可以巧妙的使用哈希模拟散列表,哈希表初始化为-1首先将地雷读入哈希表,找到地雷的坐标在哈希表中对应的下标,如果没有则此地雷的位置第一次出现&#…

4407. 扫雷 - AcWing题库

题目描述

分析

此题目使用map等都会超时,所以我们可以巧妙的使用哈希模拟散列表,哈希表初始化为-1首先将地雷读入哈希表,找到地雷的坐标在哈希表中对应的下标,如果没有则此地雷的位置第一次出现,将其存入哈希表,di[key]表示哈希数组中key对应的地雷下标,在这些相同位置的地雷中取最大的半径,因为最大的半径炸的范围更多

枚举导弹,如果有地雷,且没有被访问过而且其在爆炸范围之内就可以将其进行bfs

最后遍历每个地雷看是否被标记,被标记就算答案

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int X = 1e9 + 1, M = 1e6 + 7, N = 5e4 + 10;
struct node
{int x, y, r;
}b[N];
ll h[M], id[M], res, n, m;
bool st[N];
ll get_he(int x, int y)//得到每个坐标的哈希值 
{return (ll)x * X + y;
}
int find(int x, int y)//找到坐标被哈希数组储存的下标 
{ll he = get_he(x, y);int key = (he % M + M) % M;//映射哈希数组内 while(h[key] != -1 && h[key] != he){key ++;if(key == M)key = 0;}return key;
}
bool check(int x, int y,int r, int xx, int yy)//判断是否在爆炸范围内 
{int d = (x - xx) * (x - xx) + (y - yy) * (y - yy);return d <= r * r;
}
void bfs(int pos)
{queue<int>q;q.push(pos);st[pos] = true;while(!q.empty()){int t = q.front();q.pop();int x = b[t].x, y = b[t].y, r= b[t].r;for(int xx = x - r; xx <= x + r; xx ++){for(int yy = y - r; yy <= y + r; yy ++){int key = find(xx, yy);//是地雷,没有访问过,能炸到 if(id[key] && !st[id[key]] && check(x, y, r, xx, yy)){int pos = id[key];st[pos] = true;q.push(pos);}}}}
}
int main()
{cin >> n >> m;memset(h, -1, sizeof h);int x, y, r;for(int i = 1; i <= n; i ++)//地雷 {cin >> x >> y >> r;b[i] = {x, y, r};int key = find(x, y);//找到此地雷对应的下标 if(h[key] == -1)h[key] = get_he(x, y);//如果此下标没有出现过就加入 if(!id[key] || b[id[key]].r < r){id[key] = i;}}for(int i = 1; i <= m; i ++)//排雷导弹{cin >> x >> y >> r;for(int xx = x - r; xx <= x + r; xx ++)//在r的范围内,但可以以圆外的方形区域作为边界 {for(int yy = y - r; yy <= y + r; yy ++){int key = find(xx, yy);if(id[key] && !st[id[key]] && check(x, y, r, xx, yy))bfs(id[key]);}}	} for(int i = 1; i <= n; i ++){int key = find(b[i].x, b[i].y);int pos = id[key];if(pos && st[pos])res ++;}cout << res;return 0;
}
http://www.hrbkazy.com/news/38104.html

相关文章:

  • 网站可分为哪两种类型深圳seo优化排名优化
  • 毕设用别人网站做原型网址搜索引擎
  • php做网站需要什么技术中国网站排名网
  • 服务号不认证可做微网站吗市场调研分析报告范文
  • 网站地图怎么添加seo常用的优化工具
  • 网站的需求分析包括哪些引流推广网站平台
  • html 购物网站郑州做网站推广电话
  • 做网站有什么作用网站建设报价方案
  • 六安有哪些做网站的公司广告公司联系方式
  • 做网站的业务员网站维护一般都是维护什么
  • 设计用的报价网站百度指数人群画像怎么看
  • mvc 做网站百度上做优化
  • 万网官网域名注册多少钱东莞百度推广优化
  • 50个优秀网站wordpress建站公司
  • 房地产网站建设百度一下百度网页版
  • 公司网站建设后期维护培训机构加盟
  • 不需要验证码的注册网站优化绿松石什么意思
  • 代做毕设的网站上海疫情突然消失的原因
  • 搭建免费个人网站2022相似图片在线查找
  • 如何增加网站外链网络营销的效果是什么
  • 购买域名之后怎么做网站推广普通话的宣传标语
  • 自己的网站怎么做砍价中国营销型网站有哪些
  • dnf盗号网站怎么做百度seo软件
  • 广州网络建设公司百度 seo 工具
  • WordPress 团队管理系统龙岗seo网络推广
  • 做的网站如何被百度搜到房地产市场现状分析
  • 网站开发需要什么专业学生国际免费b站
  • 做论坛网站需要多大空间互联网广告推广公司
  • 北京市建筑信息平台搜外seo
  • 潍坊网站建设招商网站seo推广公司靠谱吗