1 条题解
-
1
💡 思路
-
开两个
vector,一个存整张地图数据的索引,一个存数据- 这么写可以做到更改大片数据的时间复杂度为 ,虽然这样访问数据的代码就变成了
data[index[x][y]],有点绕
- 这么写可以做到更改大片数据的时间复杂度为 ,虽然这样访问数据的代码就变成了
-
为每小块陆地 (
#) 都BFS,如果以前那大块陆地 (###) 算过结果,就跳过- 先为数据
vector增加一个0,然后给BFS到的陆地对应的索引vector设为最后一项 - 以后只要还是在那大块陆地上,加面积只需要
data[index[x][y]]++
- 先为数据
-
查询时,去查
data[index[x][y]],其中两个变量就是题目中让你输入的
🤔 BFS 实现逻辑
如果还不会 BFS 的看 OI Wiki ,这里不赘述
1️⃣ 准备
开一个存搜索位置的队列,为数据
vector增加项目,并以最后一项 (n-1) 作为此次搜索预设索引值,以及地图索引表 (二维数组,vector套vector和数据类型为vector的数组均可)2️⃣ 搜索
在地图对应位置标记预设索引,数据
vector的 预设索引项 ++3️⃣ 往下搜
下一个位置能搜索的条件为:
- 没越界
- 是陆地
- 没被标记索引值
然后给对应位置标记预设索引 (标记了两次,可能要改改,但是能过) ,接着
q.push({tx, ty})💻 代码
被我加密了,解密器,额外使用了模式
x,偏移量1997/lˋ8 ¢↓iG3£b◎△e○~BCˋ〇¥… ↓▲─〓¢M2Voe┅◎━_ 4¥F66n0V VbE←En0e→m◆C◇ H↓85〆▲★※L〆 〆i〇m5¥D→←Od…£ G2MT━◆ JN5C┃i■↑9Q◆々ˋDE◎ejk ┄※│a…·◎e·…□C☆…7●k┄●Z0→d◇〓↑M7T▽j▲ 々RDR3←9 ̄9A6RI9·↑_ ON§ˋ£~ME┅ ̄Gnˊ□9¥bI─◎…々S▼〆91━※☆B¥◎T┅e┃●々I↑¢Q7¢〆▲Z IˊQoOˇF│¢e○£H1━│◇3○V ̄E○▼→bB 3〓iM_ klH↓d…▲☆Lˊ│↓bOJ▼○ ̄↓▼1○ →OR~G1BDT~▲◇bˊSH¢3●LbA◎△n☆1〆EZ▼┅●bmCJ→■9Fj£△┅ˇD〇│ 0 j↑8〓 j↓QZe→7L〇l2★abQˋB〇I·ˊ7I━●┄◎F·¢l£◆□j◇6a○m A▽ˊlH〆▽jAoH£┄ReVˊI¢ˊ·△ ↑◇ ̄5k5CZ2_ 〓▽☆j┃9▼Nm2━A々↓3〆~■bˋF△8 ↓J7¥o§RHJ9B━▽↑★↓TF4VF↑7→L6◇★◎n¢SER◇an○_ ┅■3△LO SQ▽l9G3←0iHI ̄HI┅△LQ△△■£Z0〇←G76~↓…¥oHe◇m8i★S·◆Lki┄↓3☆↑□─¢Z□O│b◆○┄~━c↓L※BBD□┃B┃3V▲O8※22Di●↓8I↑a■◆k~NH→▲1~●om〆▼6M─◆■G£ˋ·ZZ─d■S9※eo〆bL8~j▽ZC━┄┅RBˋI◎ˊ ̄←1Z0GEalGHlHG·o1Rb┅5◆│lM々aGEo▲97│0n□J2ndI0〇l○·i│a◎m§┅Mi┃i1△◆★ˊ bC─aH┄※m┃Z┃┅┄2 0▼→D_ RO1d0·Gi━l2┃H─ˋ9Hd~M Z£◎ZSH4■nid※S─▽~〆☆E8Q·ˋeN~┅〇→_ 0l↓Z□l→☆jCb↑ˋV△jIQj£〓k ─ ■I£_ GJM3m※16┄○Hl─E○C々m93┅§…S←QED8┅S〇b  ̄iT6↑0△〇C●¥〓┃│ ̄◇mm£jI1DiA¢D〆k~~○■Qlm○8¢C0Rk E※々←4~BB◆ ~~│━☆\ -
- 1
信息
- ID
- 233
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 3
- 标签
- 递交数
- 183
- 已通过
- 17
- 上传者