Escape

这题题意很简单,现有n个人要移居到m个星球去,给定一个n*m的矩阵,第 i 行第 j 列如果为1,表示第 i 个人可以去第 j 个星球,如果为0,表示不可以去。显然是个最大流问题,这题解题的关键在于建图,如果把每个人看做一个点,每个星球看做一个点,人到所有可以去的星球都连上边,那么整个图的边数在10^6,那么就会TLE,那么该怎么建图呢?

我们观察一下这道题给的数据,n<= 100000, m <= 10,这么不均匀的数据,有什么特殊处理可以简化问题么,当然是有的,每个人对于星球的可选情况最多有1<<m种,如果把每种不同的选择做一个点,如果两个人有相同的可选情况(也就是说,他们能居住的星球构成的集合是同一个集合),则将边改为流量+1,如果是不同的选择,则和对应的星球建边,如此我们就将图的边数的数量级缩到10^4,这样就很容易用最大流来做了。

posted on 2010-09-19 21:16  ylfdrib  阅读(1051)  评论(5编辑  收藏  举报