T6 - 最优政府大楼选址-2
题目链接跳转:点击跳转
解题思路
本题有好多解决方法,可以使用带权中位数写 N=105N = 10^5N=105 ,为了考虑到朴素的模拟退火算法,本题的数据范围被适当降低了。如果学过模拟退火算法做这道题就非常的简单,把模板的评估函数改成计算意向程度的函数即可。
时间复杂度
模拟退火算法的时间复杂度约为 Θ(k×N)\Theta(k \times N)Θ(k×N)。其中 kkk 表示的是在模拟退火过程中计算举例的 F2 函数的调用次数。NNN 表示数据规模。
代码实现
本题的 C++ 代码如下(模拟退火):
使用加权中位数算法的 C++ 代码: