【题目描述】:
说有一个人有好几猪圈的猪,给你猪圈中猪的个数。这个人自己没有猪圈的钥匙。现在他知道有一些顾客要来买猪,他们会带来一些猪圈的钥匙。这样他就可以打开猪圈并卖给顾客猪,在这过程中他可以调换这几圈猪中的猪。问你他最多可以卖出多少猪……
【题目分析】:
这个题本来不太好想到网络流,但是如果告诉你这个是网络流的题,你也会找出一个最原始的网络流模型。但是我们发现这个图极其巨大,任何的网络流算法都无法处理,所以要像一种好的构图方法。
给大家一个地址,这里的讲解写的很好:
http://imlazy.ycool.com/post.2059102.html
看到namiheike大牛blog上的一句话:“在面对网络流问题时,如果一时想不出很好的构图方法,不如先构造一个最直观,或者说最“硬来”的模型,然后再用合并节点和边的方法来简直化这个模型。经过简化以后,好的构图思路自然就会涌现出来了。这是解决网络流问题的一个好方法。”很直观也很好的方法~
【代码】第一次在实际问题上写SAP,贴代码以示纪念(P.S.这个0ms的代码成功刷进Status第一版):