BZOJ 1475: 方格取数( 网络流 )】的更多相关文章

本来想写道水题....结果调了这么久!就是一个 define 里面少加了个括号 ! 二分图最大点权独立集...黑白染色一下 , 然后建图 : S -> black_node , white_node -> T , 流量都为点权 . 然后 black_node -> white_node ( 两点有公共边 ) , 流量为 +oo , 然后 answer = ∑ w( i ) ( i ∈ V ) - maxflow --------------------------------------…
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=1475 [题目大意] 给出一个n*n的方格,从中取一些不相邻的数字,使得和最大 [题解] 我们可以根据i+j的奇偶性将点划分为两组,同组之间无连边,因此这是一张二分图 我们建立源点对偶点引点权大小的流量,建立汇点,从每个奇点引点权大小的流量到汇点, 总点权减去该图的最小割就是答案,因为最小割中的边表示了该点被选中去除, 所有去除点和最小,那么剩下的满足限制条件的就一定是最大值了. [代…
[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=1475 [算法] 首先将方格黑白染色 , 也就是说 , 如果(i + j)为奇数 , 这个点就是黑点 , 否则是白点 那么这个n * n的方格就被分为了两个集合 , 一个是黑点集合 , 一个是白点集合 如果选取一个黑点 , 造成影响的是四方向内的白点 如果选取一个白点 , 造成影响的是四方向内的黑点 考虑首先选取所有的点 , 然后去掉最小代价的点 , 并使方案合法 那么这就是一个最小…
1475: 方格取数 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 1025  Solved: 512[Submit][Status][Discuss] Description 在一个n*n的方格里,每个格子里都有一个正整数.从中取出若干数,使得任意两个取出的数所在格子没有公共边,且取出的数的总和尽量大. Input 第一行一个数n:(n<=30) 接下来n行每行n个数描述一个方阵 Output 仅一个数,即最大和 Sample Input 2 1…
https://www.luogu.com.cn/problem/P2774 在一个有 m×n 个方格的棋盘中,每个方格中有一个正整数. 现要从方格中取数,使任意2个数所在方格没有公共边,且取出的数的总和最大.试设计一个满足要求的取数算法. 输入格式: 文件第1行有2个正整数 m 和 n,分别表示棋盘的行数和列数.接下来的 m 行,每行有 n 个正整数,表示棋盘方格中的数. 注意:m 是行数,n 是列数. 数据保证有 1≤n,m≤30 输出格式: 输出取数的最大总和. 输入样例: 在这里给出一组…
题目描述 在一个n*n的方格里,每个格子里都有一个正整数.从中取出若干数,使得任意两个取出的数所在格子没有公共边,且取出的数的总和尽量大. 输入 第一行一个数n:(n<=30) 接下来n行每行n个数描述一个方阵 输出 仅一个数,即最大和 样例输入 2 1 2 3 5 样例输出 6 题解 网络流最小割 将原图黑白染色,分别和源点和汇点连边,容量为原数:相邻的点连边,容量为inf. 答案为sum-mincut. #include <cstdio> #include <cstring&g…
今天脑子不太清醒,把数据范围看小了一直TTTTLE-- 最大费用最大流,每个格子拆成两个(x,y),(x,y)',(x,y)向(x,y)'连一条费用a[x][y]流量1的边表示选的一次,再连一条费用0流量inf的表示取走之后再从这里走,然后每个(x,y)'向(x,y+1),(x+1,y)连一条费用0流量inf的边表示转移,然后s点向(1,1),(n,n)'向t点分别连费用0流量k的边表示限制走m次 #include<iostream> #include<cstdio> #inclu…
将网格分为两部分,方法是黑白染色,即判断(i+j)&1即可,分开后从白色格子向黑色格子连边,每个点需要四条(边界点可能更少),也就是每个格子周围的四个方向.之后将源点和汇点分别于黑白格子连边,边权即为点权,最后用总权值减去最小割即可. #include <iostream> #include <algorithm> #include <cstdio> #include <cstdlib> #include <cstring> #inclu…
#6007. 「网络流 24 题」方格取数 内存限制:256 MiB时间限制:1000 ms标准输入输出 题目类型:传统评测方式:文本比较 上传者: 匿名 提交提交记录统计讨论测试数据   题目描述 在一个有 m×n m \times nm×n 个方格的棋盘中,每个方格中有一个正整数. 现要从方格中取数,使任意 2 22 个数所在方格没有公共边,且取出的数的总和最大.试设计一个满足要求的取数算法. 输入格式 文件第 1 11 行有 2 22 个正整数 m mm 和 n nn,分别表示棋盘的行数和…
Libre 6007 「网络流 24 题」方格取数 / Luogu 2774 方格取数问题 (网络流,最大流) Description 在一个有 m*n 个方格的棋盘中,每个方格中有一个正整数.现要从方格中取数,使任意 2 个数所在方格没有公共边,且取出的数的总和最大.试设计一个满足要求的取数算法.对于给定的方格棋盘,按照取数要求编程找出总和最大的数. Input 第 1 行有 2 个正整数 m 和 n,分别表示棋盘的行数和列数.接下来的 m 行,每行有 n 个正整数,表示棋盘方格中的数. Ou…