匈牙利算法学习笔记

亲爱的绿帽子算法。

【关于裸题】

我还是那么喜欢把变量名打反(luoguP2055假期的宿舍)。

话说用输出查错是很舒服的。

 尽快学会和熟练对拍啊!

【关于建模】

特点便是 ,不管是左部点还是右部点,都必须是一一对应(对应不了就不连了)的关系——也就是“宁可绿帽戴尽,也要从一而终”。

部点可以抽象化

例如luoguP1640连续攻击游戏,看到题目很容易去想把一个装备的2个属性分别放到左部点和右部点去。但是如果把图一画就会发现,这样子的话,节点们完全不像是个二分图的样子。那么该怎么建模呢?|+_+|让我们来看一下有哪些一一对应的关系。

1.1个装备只能对应1种伤害值

2.1种伤害值只能使用一次

真棒!所以不妨把伤害值设作左部点,装备编号设作右部点。由于模板统计的是左部点的量,而题目问的是最多伤害次数,所以把伤害值设作左部点是OK的(其实都差不多啦,左边有连线的点数不就等于右边有连线的点数吗)。

这样子的左部点有一些抽象,但是是非常好用的,明显是正解啦。

【关于常错】

1.这次把定义的MAXN和MAXM打反了

2.加边时一时激动,把add(a,i);add(b,i);打成了add(a,b);

3.用二维数组已经存不下了,但是用链表存图依然是那么优秀

posted @ 2018-03-05 13:43  Eliza_Herb  阅读(110)  评论(0编辑  收藏  举报