这道题酝酿了好长时间,也让我头疼了好长时间。这道题要拆点,把一个点拆成一条边,这条边的入点连接出点,出点连接邻接的边的入点,都是双向的。由于拆点后,节点数最大为5000多个,用矩阵超时,所以用邻接表。用邻接表的巧妙之处在于最后处理流的时候,假设e为一条边的序号,e^1就是它的反向边的序号,这样很容易更新流。
这道题应该有两个难点吧,一是如何拆点构造图,二是如何用邻接表来更新流。
程序代码:
这道题酝酿了好长时间,也让我头疼了好长时间。这道题要拆点,把一个点拆成一条边,这条边的入点连接出点,出点连接邻接的边的入点,都是双向的。由于拆点后,节点数最大为5000多个,用矩阵超时,所以用邻接表。用邻接表的巧妙之处在于最后处理流的时候,假设e为一条边的序号,e^1就是它的反向边的序号,这样很容易更新流。
这道题应该有两个难点吧,一是如何拆点构造图,二是如何用邻接表来更新流。
程序代码: