摘要: 题意:一个N*M的矩阵里有K个观测点,你必须放置天线覆盖所有观测点。每个雷达只能天线两个观测点,这两点必须相邻。计算最少天线数。 做法:将所有相邻的观测点连起来,建图。跑一遍匈牙利算法就计算出了最大的覆盖数,除以二就是天线数。还要加上落单的观测点,每个都需要一个天线。 1 /*----------- 阅读全文
posted @ 2016-03-05 00:32 Helica 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 题意:经典的二分图匹配问题。给出一个N*N矩阵,其中有K个障碍物。一发歼星炮可以清楚一行或者一列上的障碍物。求最少的开炮数。 做法:可以考虑最大点覆盖。建图左边顶点为行,右边顶点为列。若有障碍物则连边。此时最大点覆盖就是最小开炮数,也就是计算二分图最大匹配。使用匈牙利算法即可。 1 /*------ 阅读全文
posted @ 2016-03-05 00:28 Helica 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 题意:给出一个图,每个节点都有权值,每条边也有费用。要求建立一颗树,使总花费最小。树上每连一条边的花费定义为孩子节点权值和×此边费用。 做法:分析可知,最终的答案为所有节点的权值×到根节点的距离。可以知道当距离最短时,花费最小。 于是用Dijkstra+优先队列优化就可以搞定了。这题有些卡时间。最后 阅读全文
posted @ 2016-03-05 00:23 Helica 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 两种货币的交换可以当成两条边,建图后跑Bellman_ford算法就好了。 Bellman_ford算法可以用来处理负边权,所以可以判断是否存在负环。反过来就可以判断是否存在正环。 1 /*------------------------------------------------------- 阅读全文
posted @ 2016-03-05 00:16 Helica 阅读(310) 评论(0) 推荐(0) 编辑