塔防危險度計算

2021-07-11 12:28:40 字數 595 閱讀 4032

格點平面上有一些塔,對於平面的每乙個點,其危險度定義為曼哈頓距離為d的範圍內的塔的數量,求危險度最低的點。

曼哈頓距離:d=|x1-x2|+|y1-y2|。(x1,y1)->(x2,y2)的距離

則對於某點(i,j),距離其曼哈頓距離為d的點形成乙個菱形。

1. 我們可以對平面上的某個點(i,j)進行對換,可得到:

2. 定義乙個二維陣列sum[i][j],表示從(0,0)-> (i,j)的塔的個數,可以得到遞推方程:sum[i][j]=sum[i-1][j]+sum[i][j-1]-sum[i-1][j-1]。

3. 定義乙個二維陣列res[i][j]表示點(i,j)的危險度,res[i][j]=sum[i+sqrt(2)/2][j+sqrt(2)/2]-sum[i+sqrt(2)/2][[j-sqrt(2)/2]]-sum[i-sqrt(2)/2][j+sqrt(2)/2]+sum[i-sqrt(2)/2][j-sqrt(2)/2]

4. 遍歷二維陣列res,獲取最小值,對換回原座標

綜上所述:o(n^2)

危險計算機

description n臺計算機由n 1條網線連線,形成了乙個樹形網路。這些計算機經常會被黑客攻擊,如果這個樹形網路中的某一台計算機遭到攻擊而導致系統癱瘓,那麼與這台計算機連線的所有網線就無法進行資料傳輸,整個網路就會被分成若干個小的樹形網路,每個小網路由一台或多台計算機組成。如果一台計算機被攻擊...

塔防遊戲固定路線解析

在塔防我們需要小怪沿著固定路線行走,今天就給大家分享一下我的方法,直接上 可在 裡看分析 首先我們在場景裡建立好cube當作怪,capsule來當作固定路點的點 接下來我們寫乙個指令碼,將他繫結在cube身上 建立路點陣列 public gameobject pathpoint 開始的索引 int ...

塔防炮塔AI除錯記錄

做乙個炮塔的ai,希望攻擊最先接近的怪物,list用來存放怪物接近的順序 進入攻擊範圍 新增到攻擊列表 private void ontriggerenter collider other 離開攻擊範圍 private void ontriggerexit collider other 但是如果在攻...