zoukankan      html  css  js  c++  java
  • 【网络流24题】二分图点权最大独立集(方格取数问题)

    Description

    在一个有m*n 个方格的棋盘中,每个方格中有一个正整数。现要从方格中取数,使任意2 个数所在方格没有公共边,且取出的数的总和最大。试设计一个满足要求的取数算法。

    编程任务:
    对于给定的方格棋盘,按照取数要求编程找出总和最大的数。

    Input

    第1 行有2 个正整数m和n,分别表示棋盘的行数和列数。
    接下来的m行,每行有n个正整数,表示棋盘方格中的数。

    Output

    程序运行结束时,将取数的最大总和输出

    Sample Input

    3 3
    1 2 3
    3 2 3
    2 3 1

    Sample Output

    11

    就是找一些点,使得互不相连,并且点权和最大。

    结论是

      先黑白染色一次。

      S向所有黑点连一条为该权值的边,所有白点向T连一条为该权值的边。

      黑点向周围四个白点连无限流量的边。

      转化为了一张图,ans=所有点权和-最小割。

    证明是

      其实我认为有最大闭合权图思想,就是说,最小割=简单割,很显然吧。

      将左边的边割去,表示这些黑点不选,右边的边割去,表示这些白点不选,

      那么,最小割保证不连通,所以保证了这些点互不相连。

      所以所以点权和-最小割=最优解。

  • 相关阅读:
    安卓学习第12课——SimpleAdapter
    用栈结构实现多项式计算器
    用B-树实现虚拟图书管理系统
    HDU4791【杂】
    HDU4801【DFS】
    萌新学习图的强连通(Tarjan算法)笔记
    Lightoj 1021【状压DP(未搞)】
    Lightoj 1008【规律】
    CodeForces Canada Cup 2016【A,B,C,D】
    51nod 1068【简单博弈】
  • 原文地址:https://www.cnblogs.com/fengzhiyuan/p/7927672.html
Copyright © 2011-2022 走看看