源自-------------------------------------Ice_Crazy
hdu2255
KM模板题。hdu3722
KM模板题。
hdu3395
KM水题。
hdu2448
KM+最短路,不难,两部分都是果的。注意这句“ships are only allowed to sail between
mining stations which can communicate with each other directly.”
hdu3718
假设用序列2中的字母A来和序列1中的字母C等效,那么可以有map[A][C]=count,count为
两个序列放在一起,情况1出现的次数。情况1:“set1[i]=='C' && set2[l]=='A' && i==l”。
那么根据这个建图、KM就行了。
hdu2282
巧克力和盒子,边就是每个巧克力到某个盒子的距离(注意盒子的摆放是环形的)。
hdu2426
N!=M的KM。
hdu2853
KM小变异。
如果只是km的话很简单,但是还要尽量少移动,那么就有难度了囧~,用的是网上学来的方
法:
每个边权值变为k倍(k>n),然后让原本已经match的那几条边边权+1,那么就加重了我
们想尽量保持不变的边的权值。最后匹配完后的sum/k就是总匹配出来的结果,而sum%k就是
没有被删除的原有组合。
hdu1853
KM小变异
看到这题的第一反应不是用KM,但是有人用KM干掉呀,所以我就想为什么可以用KM呀,然后
就想到了呀:如果KM整出了完美匹配,那么对于每个node,有:“有进有出”,所以自然就有环了~,
so~,KM可行~。
hdu3488
KM小变异,和hdu1853同一题。
hdu3435
KM小变异,和上面俩题(hdu1853、hdu3488)是同一题,只不过这个题中边是无向的。
hdu1533
KM小变异,求最小匹配。
两种方法:
一. 我们了解了KM求最大匹配的原理了,那么把算法稍微修改一下,让算法求最小匹配。:
二. 但是第一种方法多多少少还是有点儿麻烦呢,那怎么办呢?我们不妨来《修改数据》,
让权值最小的边变为权值最大的边,依次类推,不就ok了么~。
我的选择是,将所有边的权值乘上-1,然后加上k(k>=MAX(abs(边权)))。
原创----------------------------Ice_Crazy。
当然这想法还是挺容易想到的。