乙個演算法題,研究下看怎麼解?

2021-06-22 11:09:30 字數 1051 閱讀 7187

假設有乙個正方形的城市,被劃分為n行n列的單元格,每個單元格可以放置牆或雷射塔。如果中間沒有牆隔開,同一水平行或垂直列中不能放置超過乙個雷射塔。我們的目標是在城市內建立盡可能多的雷射塔。請完成下面乙個演算法:

c/c++ code?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

/*

city_map: 城市地圖,包含city_scale×city_scale個單元格,按從上到下、從左到右形式記錄各單元格,city_map[0]標識地圖左上角的單元,city_map[city_scale - 1]表示右上角單元,city_map[city_scale * city_sclae - 1]表示右下角的單元,單元格取值:'w'表示牆,'.'表示空地,雷射塔只能放在空地上,如

..w.

w...      左圖所示的4×4地圖,city_map取值為"..w.w........w.w",city_scale取值為4

....

.w.w

city_sclae: 城市規模,指每行或每列的單元格數量

返回值:該城市能放置雷射塔的最大數量,需確保雷射塔之間不被互相摧毀

*/

intmax_laser_tower_count(constchar*city_map,intcity_scale)

乙個演算法題

題目描述 某省會城市街道縱橫交錯,為了監控路燈的執行狀況,每條街道使用乙個數字字串標識該街道上所有路燈的執行狀況。假設路燈只有如下 3種狀態 分別用數字 0,1,2標識,一盞路燈只對應其中一種狀態 0 標識路燈熄滅 1 標識路燈開啟 2 標識路燈故障 請根據輸入的字串,找出該街道上連續的處於相同狀態...

乙個演算法題

關鍵字 演算法 有101塊金幣,其中一塊是假的,要求用無砝碼的天平稱兩次,判斷是真的金幣重還是假的重 答案 分三份,第乙份份五十個,第二份五十個,第三份份乙個。第一次 將兩份五十個分別放到天平兩端。如果天平是平的,證明第三份是假的。這時只要從真的裡拿出乙個,和假的分別放到天平兩端,就能知道假的是輕是...

乙個演算法題

1 100範圍中,有1000個可重複的數,以出現次數的多少排序,返回乙個新陣列?根據物件的乙個屬性排序 param data 原始陣列 陣列單個元素為物件 param sortkey 要根據排序的key param type desc 倒序,asc 正序 function sortobjarrbyk...