A*算法
我们的目标是尽量将终点取出 k k k 次,所以将它到终点的最短路近似的看作未来的路径长度。如果当前花费+未来的路径长度更小,就更有可能成为答案。显然,当前取出的点走最短路一定会成为答案之一,当然,对于一些不在最短路径上的点,只要当前花费+未来的路径长度比其他状态小,也会成为答案。
涂满它!
设计估价函数为:当前不同颜色的个数
我们的决策应该是选择与之相邻的一个块的颜色
考虑用 IND*
破坏正方形
考虑估价函数为当前状态下,每次将一个存在的最小矩阵的火柴全部拿去,所花费的步数。
dfs框架为:每次拿走最小的矩阵的一根火柴
Channel Allocation
这是一道染色问题。
用迭代加深控制搜索步数,每次选择被覆盖颜色最多的进行dfs,可以用优先队列实现。
本题可以运用经典的四色定理,即答案不超过4.
当结点数很多时,四色定理的剪枝优势就会体现出来了
四色定理的原始理论依据:
对于一个散点集,若要求尽可能连接任意两个点,但任意一条边边不允许与其他边相交,
那么当散点集的元素个数<=4时,连接所得的图必为一个一个 无向完全图
当散点集的元素个数>4时,连接所得的图必不是一个完全图
完全图:任意两点均相邻