检测到 KaTeX 加载失败,可能会导致文中的数学公式无法正常渲染。
#题面
#题目描述
有一个 行 列的方格图,每个方格中都有一个正整数。现要从方格中取数,使任意两个数所在方格没有公共边,且取出的数的总和最大,请求出最大的和。
#输入格式
第一行是两个用空格隔开的整数,分别代表方格图的行数 和列数 。
第 到第 行,每行 个整数,第 行的第 个整数代表方格图第 行第 列的的方格中的数字 。
#输出格式
输出一行一个整数,代表和最大是多少。
#样例输入输出
样例输入 #1
3 3
1 2 3
3 2 3
2 3 1
样例输出 #1
11
#数据规模与约定
对于 的数据,保证 ,。
#思路
可以对整个方格图进行黑白染色,将 的点设为黑点,如下图所示:
可以发现,若取一个黑格的点,受到影响的就是周围的白点。然后可以建一个二分图,这道题就可以用最小割求解了。
新建一个超级源点,将所有黑点连到这个超级源点上,容量为点权;
再新建一个超级汇点,将所有白点连接到这个超级汇点上,容量为点权;
最后将每一个黑点连接到会被这个点影响到的白点上,容量为 。
答案为方格图中所有点的点权和再减去最小割。
#代码
1 |
|