现在的位置: 首页 > 综合 > 正文

一个算法题,研究下看怎么解?

2014年09月05日 ⁄ 综合 ⁄ 共 569字 ⁄ 字号 评论关闭

假设有一个正方形的城市,被划分为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: 城市规模,指每行或每列的单元格数量
返回值:该城市能放置激光塔的最大数量,需确保激光塔之间不被互相摧毁
*/
int max_laser_tower_count(const char *city_map, int city_scale)
{
    //TODO: 此处添加自己的代码
    return 0;
}

抱歉!评论已关闭.