【藍橋杯每日一題】掃雷

掃雷

知識點

2024-12-3 藍橋杯每日一題 掃雷 dfs (bfs也是可行的)

題目大意

在一個二維平面上放置這N個炸雷,每個炸雷的信息有$(x_i,y_i,r_i) $,前兩個是坐標信息,第三個是爆炸半徑。然后會輸入M個排雷火箭,同樣的信息;排雷火箭會將范圍內所有的炸雷炸掉,并且會引發一連串爆炸這就要根據爆炸半徑來判斷。

解題思路
  1. 要考慮怎么存儲這個炸彈信息,并且還要方便遍歷到。在題目中坐標范圍是 1 0 9 10^9 109,肯定不能存到二維數組的平面坐標中。
  2. 使用 m a p < p a i r < i n t , i n t > , v e c t o r < i n t > > map<pair<int,int>,vector<int>> map<pair<int,int>,vector<int>>,這樣方便以O(1)的時間訪問到當前位置,并且題目中明確表示同一個點可能會包含多個炸雷或火箭,(這一點一定看清楚),我就是這一點磕了一下;然后就是一定要使用map來定義,unordered_map我用的不行,應為這里使用到了pair。
  3. 最后就是遞歸遍歷了,沒輸入一個火箭調用dfs;而且注意到 r 的的范圍是很小的,我們就可以通過遍歷當前位置為中心向四周擴展 r 長度的正方形,然后找到雷之后還要判斷兩點之間的距離是否在園內即可。
Accepted
#include <bits/stdc++.h>
using namespace std;const int N = 5e4+10;
typedef long long ll;
typedef pair<int,int> pii;
int n,m,cnt;
map<pii,vector<int>> a;
// 兩點之間的距離
ll dist(int x1,int y1,int x2,int y2) {return 1ll*(x1-x2)*(x1-x2) + 1ll*(y1-y2)*(y1-y2);
}void dfs(int x,int y,int r) {for(int i = x-r;i <= x+r;i++) {for(int j = y-r;j <= y+r;j++) {if(a.count({i,j})) {int len = a[{i,j}].size();for(int k = 0;k < len;k++) {int rr = a[{i,j}][k];if(rr > 0 && dist(i,j,x,y) <= 1ll*r*r) {a[{i,j}][k] = 0;cnt++;dfs(i,j,rr);}}}}}
}int main()
{int x,y,r;cin>>n>>m;for(int i = 1;i <= n;i++) {cin>>x>>y>>r;a[{x,y}].push_back(r);}while(m--) {cin>>x>>y>>r;dfs(x,y,r);}cout<<cnt;return 0;
}
備注

歡迎大家一起來備戰藍橋杯。可以私信我加聯系方式,人多的話咱就拉個群了。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/62212.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/62212.shtml
英文地址,請注明出處:http://en.pswp.cn/web/62212.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【大數據學習 | 面經】Spark 3.x 中的AQE(自適應查詢執行)

Spark 3.x 中的自適應查詢執行&#xff08;Adaptive Query Execution&#xff0c;簡稱 AQE&#xff09;通過多種方式提升性能&#xff0c;主要包括以下幾個方面&#xff1a; 動態合并 Shuffle 分區&#xff08;Coalescing Post Shuffle Partitions&#xff09;&#xff1a; 當 …

城電科技 | 光伏景觀長廊 打造美麗鄉村綠色低碳示范區 光伏景觀設計方案

光伏景觀長廊是一種結合了光伏發電技術和零碳景觀設計的新型公共公共設施&#xff0c;光伏景觀長廊頂上的光伏板不僅可以為周邊用電設備提供清潔電能&#xff0c;而且還能作為遮陽設施使用&#xff0c;為人們提供一個美麗又實用的休閑娛樂空間。 光伏景觀長廊建設對打造美麗鄉…

開發系統準備與開發環境配置總結

開發前系統配置及環境搭建 系統配置0 Github打不開、速度慢怎么辦1 WSL、Linux、Ubuntu、Docker都是什么鬼2 在Windows下安裝WSL和Ubuntu3 配置MySQL4 配置Redis并啟動服務5 Docker&#xff08;Windows和Ubuntu下&#xff09;6 Nginx 系統配置 你好&#xff01; 這是你第一次使…

uniapp 添加loading

在uniapp中添加loading可以使用uni的API uni.showLoading 方法。以下是一個簡單的示例代碼 // 顯示loading uni.showLoading({title: 加載中 });// 假設這里是異步操作&#xff0c;比如網絡請求 setTimeout(function () {// 隱藏loadinguni.hideLoading(); }, 2000);

C++(九)

前言&#xff1a; 本文主要講述運算符的優先順序。 一&#xff0c;運算符的優先級。 請看以下表達式&#xff1a; a32*5 運算結果為&#xff1a;13. 可以看到&#xff0c;在此代碼中&#xff0c;先運行了2*5的結果&#xff0c;在此基礎上在進行3操作&#xff0c;因此結果…

Android 拍照(有無存儲權限兩種方案,兼容Q及以上版本)

在某些行業&#xff0c;APP可能被禁止使用存儲權限&#xff0c;或公司在寫SDK功能&#xff0c;不方便獲取權限 所以需要有 無存儲權限拍照方案。這里兩種方案都列出里。 對于寫入權限&#xff0c;在高版本中&#xff0c;已經廢棄&#xff0c; 不可用文件寫入讀取權限&#xf…

【Altium Designer 】AD如何使用嘉立創元器件的3D封裝

1.下載3D封裝 以STM32F407VGT6為例&#xff0c;進入嘉立創商城網站&#xff0c;找到需要的元器件封裝 復制編號&#xff0c;打開嘉立創EDA&#xff0c;編譯器選擇專業版&#xff0c;新建工程&#xff0c;點擊PCB1 復制編號在搜索框中&#xff0c;點擊搜索&#xff0c;然后放置…

爬蟲運行后數據如何存儲?

爬蟲運行后獲取的數據可以存儲在多種不同的存儲系統中&#xff0c;具體選擇取決于數據的規模、查詢需求以及應用場景。以下是一些常見的數據存儲方法&#xff1a; 1. 文件系統 對于小型項目或臨時數據存儲&#xff0c;可以直接將數據保存到本地文件中。常見的文件格式包括&…

【機器學習】機器學習的基本分類-監督學習-梯度提升樹(Gradient Boosting Decision Tree, GBDT)

梯度提升樹是一種基于**梯度提升&#xff08;Gradient Boosting&#xff09;**框架的機器學習算法&#xff0c;通過構建多個決策樹并利用每棵樹擬合前一棵樹的殘差來逐步優化模型。 1. 核心思想 Boosting&#xff1a;通過逐步調整模型&#xff0c;使后續的模型重點學習前一階段…

【機器學習 | 基于Lasso回歸和隨機森林的上海鏈家二手房房價預測】

文章目錄 &#x1f3f3;??&#x1f308; 1. 導入模塊&#x1f3f3;??&#x1f308; 2. Pandas數據處理2.1 讀取數據2.2 查看數據信息2.3 去除重復數據2.4 去除缺失數據2.5 面積、價格、單價、樓層、建筑時間數據提取2.6 朝向數據處理 &#x1f3f3;??&#x1f308; 3. 特…

【HarmonyOS NEXT】flexShrink屬性

一、背景 希望達到的布局效果是文字與按鈕左右對齊&#xff0c;居中顯示&#xff0c;但實際效果中按鈕的顯示與效果不符&#xff0c;如下圖所示 二、問題 按鈕是用row組件包裹的text&#xff0c;左右padding給的是一樣的大小&#xff0c;但是明顯右邊padding會比左邊padding大…

CentOS 7 上安裝 MySQL 8.0.40 (二進制安裝)

要在 CentOS 7 上安裝 MySQL 8.0.40&#xff0c;按照以下步驟操作&#xff1a; 下載安裝包。 https://dev.mysql.com/downloads/mysql/ 下載之前查看系統c版本 解壓安裝包 首先&#xff0c;解壓下載的 .tar.xz 安裝包。 cd /path/to/your/downloads tar -xvf mysql-8.0…

PHP語法學習(第六天)

&#x1f4a1;依照慣例&#xff0c;回顧一下昨天講的內容 PHP語法學習(第五天)主要講了PHP中的常量和運算符的運用。 &#x1f525; 想要學習更多PHP語法相關內容點擊“PHP專欄” 今天給大家講課的角色是&#x1f34d;菠蘿吹雪&#xff0c;“我菠蘿吹雪吹的不是雪&#xff0c;而…

Python Web 開發:使用 FastAPI 進行依賴注入與異常處理

Python Web 開發&#xff1a;使用 FastAPI 進行依賴注入與異常處理 目錄 &#x1f6e0;? 依賴注入與 FastAPI 高級特性?? 自定義異常類的實現與應用&#x1f6a8; 使用 HTTPException 處理常見錯誤&#x1f30d; 全局異常處理器的設計與實現?? 異常處理與 API 響應的整合…

免押租賃系統助力資源共享新模式開創便捷租賃體驗

內容概要 免押租賃系統&#xff0c;聽起來是不是很酷&#xff1f;這個新模式不僅僅是為了讓你少花點錢&#xff0c;它的到來簡直就是個革命&#xff01;以前&#xff0c;租東西時首先想到的就是那個令人心痛的押金&#xff0c;對吧&#xff1f;但現在&#xff0c;免押租賃系統…

oracle之用戶的相關操作

&#xff08;1&#xff09;創建用戶(sys用戶下操作) 簡單創建用戶如下&#xff1a; CREATE USER username IDENTIFIED BY password; 如果需要自定義更多的信息&#xff0c;如用戶使用的表空間等&#xff0c;可以使用如下&#xff1a; CREATE USER mall IDENTIFIED BY 12345…

第77期 | GPTSecurity周報

GPTSecurity是一個涵蓋了前沿學術研究和實踐經驗分享的社區&#xff0c;集成了生成預訓練Transformer&#xff08;GPT&#xff09;、人工智能生成內容&#xff08;AIGC&#xff09;以及大語言模型&#xff08;LLM&#xff09;等安全領域應用的知識。在這里&#xff0c;您可以找…

如何通過自學成長為一名后端開發工程師?

大家好&#xff0c;我是袁庭新。最近&#xff0c;有星友向我提出了一個很好的問題&#xff1a;如何通過自學成為一名后端開發工程師&#xff1f; 為了解答這個疑問&#xff0c;我特意制作了一個視頻來詳細分享我的看法和建議。 戳鏈接&#xff1a;如何通過自學成長為一名后端開…

Linux---對緩沖區的簡單理解--第一個系統程序

前序&#xff1a; 首先先理解一下什么是回車與換行&#xff1b;回車和換行是兩個概念&#xff0c;它們不是一個東西&#xff1b; 回車:光標回到開始&#xff1b;換行:換到下一行&#xff1b; 如下圖&#xff1a; 行緩沖區 如何理解緩沖區問題&#xff1f; 可以認為&#xff0…

力扣每日一題-999. 可以被一步捕獲的棋子數

題目 給定一個 8 x 8 的棋盤&#xff0c;只有一個 白色的車&#xff0c;用字符 R 表示。棋盤上還可能存在白色的象 B 以及黑色的卒 p。空方塊用字符 . 表示。車可以按水平或豎直方向&#xff08;上&#xff0c;下&#xff0c;左&#xff0c;右&#xff09;移動任意個方格直到它…