#include<cstdio>
#include<iostream>
#include<cstring>
#define M 100009
#define inf 2139062143
using namespace std;
int n,m,a[][],b[][],c[][],tot,cnt=,T,ans,head[M],d[M],q[*M],next[*M],u[*M],v[*M];
int xx[]={,,,-},yy[]={,-,,};
bool bfs()
{
memset(d,,sizeof(int)*(T+));
int h=,t=;
q[]=;
d[]=;
for(;h<t;)
{
h++;
int p=q[h];
for(int i=head[p];i;i=next[i])
if(!d[u[i]]&&v[i])
{
d[u[i]]=d[p]+;
if(d[T])
return ;
t++;
q[t]=u[i];
}
}
return ;
}
int dinic(int s,int f)
{
if(s==T)
return f;
int rest=f;
for(int i=head[s];i&&rest;i=next[i])
if(v[i]&&d[u[i]]==d[s]+)
{
int now=dinic(u[i],min(rest,v[i]));
if(!now)
d[u[i]]=;
v[i]-=now;
v[i^]+=now;
rest-=now;
}
return f-rest;
}
void jia1(int a1,int a2,int a3)
{
cnt++;
next[cnt]=head[a1];
head[a1]=cnt;
u[cnt]=a2;
v[cnt]=a3;
return;
}
void jia(int a1,int a2,int a3)
{
jia1(a1,a2,a3);
jia1(a2,a1,);
return;
}
int main()
{
scanf("%d%d",&n,&m);
T=n*m+;
for(int i=;i<=n;i++)
for(int j=;j<=m;j++)
{
scanf("%d",&a[i][j]);
tot+=a[i][j];
a[i][j]*=;
}
for(int i=;i<=n;i++)
for(int j=;j<=m;j++)
{
scanf("%d",&b[i][j]);
tot+=b[i][j];
b[i][j]*=;
}
for(int i=;i<n;i++)
for(int j=;j<=m;j++)
{
int a1;
scanf("%d",&a1);
tot+=a1;
a[i][j]+=a1;
a[i+][j]+=a1;
jia((i-)*m+j,i*m+j,a1);
jia(i*m+j,(i-)*m+j,a1);
}
for(int i=;i<n;i++)
for(int j=;j<=m;j++)
{
int a1;
scanf("%d",&a1);
tot+=a1;
b[i][j]+=a1;
b[i+][j]+=a1;
jia((i-)*m+j,i*m+j,a1);
jia(i*m+j,(i-)*m+j,a1);
}
for(int i=;i<=n;i++)
for(int j=;j<m;j++)
{
int a1;
scanf("%d",&a1);
tot+=a1;
a[i][j]+=a1;
a[i][j+]+=a1;
jia((i-)*m+j,(i-)*m+j+,a1);
jia((i-)*m+j+,(i-)*m+j,a1);
}
for(int i=;i<=n;i++)
for(int j=;j<m;j++)
{
int a1;
scanf("%d",&a1);
tot+=a1;
b[i][j]+=a1;
b[i][j+]+=a1;
jia((i-)*m+j,(i-)*m+j+,a1);
jia((i-)*m+j+,(i-)*m+j,a1);
}
for(int i=;i<=n;i++)
for(int j=;j<=m;j++)
{
jia(,(i-)*m+j,a[i][j]);
jia((i-)*m+j,T,b[i][j]);
}
for(;bfs();)
ans+=dinic(,inf);
printf("%d\n",tot-(ans/));
return ;
}

网络流最小割 建边非常神奇。

S向i连变容量为文[i]+文[i][j]/2,向j连边容量为文[j]+文[i][j]/2。i向T连边容量为理[i]+理[i][j]/2,j向T连边容量为理[j]+理[i][j]/2;i于j连边,容量为文[i][j]/2+理[i][j]/2.

bzoj 2127: happiness的更多相关文章

  1. BZOJ 2127: happiness [最小割]

    2127: happiness Time Limit: 51 Sec  Memory Limit: 259 MBSubmit: 1815  Solved: 878[Submit][Status][Di ...

  2. [BZOJ 2127] happiness 【最小割】

    题目链接:BZOJ - 2127 题目分析 首先,每个人要么学文科,要么学理科,所以可以想到是一个最小割模型. 我们就确定一个人如果和 S 相连就是学文,如果和 T 相连就是学理. 那么我们再来确定建 ...

  3. bzoj——2127: happiness

    2127: happiness Time Limit: 51 Sec  Memory Limit: 259 MBSubmit: 2570  Solved: 1242[Submit][Status][D ...

  4. [置顶] [BZOJ]2127: happiness 最小割

    happiness: Description 高一一班的座位表是个n*m的矩阵,经过一个学期的相处,每个同学和前后左右相邻的同学互相成为了好朋友.这学期要分文理科了,每个同学对于选择文科与理科有着自己 ...

  5. BZOJ 2127 happiness ——网络流

    [题目分析] 基本上是第一次真正的使用最小割的模型. 同时加上一个数然后最后再减去是处理负数的一种方法. 设立出来最小割的模型然后解方程是一件很重要的事情,建议取一个相对来说比较简单的值带入求解. 这 ...

  6. bzoj 2127 happiness【最小割+dinic】

    参考:https://www.cnblogs.com/chenyushuo/p/5144957.html 不得不说这个建图方法真是非常妙啊 假设S点选理,T点选文,a[i][j]为(i,j)选文收益, ...

  7. BZOJ 2127: happiness(最小割解决集合划分)

    Time Limit: 51 Sec  Memory Limit: 259 MBSubmit: 2350  Solved: 1138[Submit][Status][Discuss] Descript ...

  8. BZOJ 2127 / Luogu P1646 [国家集训队]happiness (最小割)

    题面 BZOJ传送门 Luogu传送门 分析 这道题又出现了二元关系,于是我们只需要解方程确定怎么连边就行了 假设跟SSS分在一块是选文科,跟TTT分在一块是选理科,先加上所有的收益,再来考虑如何让需 ...

  9. [国家集训队]happiness 最小割 BZOJ 2127

    题目描述 高一一班的座位表是个n*m的矩阵,经过一个学期的相处,每个同学和前后左右相邻的同学互相成为了好朋友.这学期要分文理科了,每个同学对于选择文科与理科有着自己的喜悦值,而一对好朋友如果能同时选文 ...

随机推荐

  1. js图片跑马灯效果

    <style. type="text/css">body{margin:0px auto; padding:0px;}ul,li{margin:0px; padding ...

  2. GFS Google File System(中文翻译)

    Google文件系统 GFS是一个可扩展的分布式文件系统,用于大型的.分布式的.对大量数据进行访问的应用.它运行于廉价的普通硬件上,但可以提供容错功能.它可以给大量的用户提供总体性能较高的服务. 1. ...

  3. Android alertdialog实现确认退出

    package com.example.alertdialog; import android.os.Bundle; import android.app.Activity; import andro ...

  4. golang学习之beego框架配合easyui实现增删改查及图片上传

    golang学习之beego框架配合easyui实现增删改查及图片上传 demo目录: upload文件夹主要放置上传的头像文件,main是主文件,所有效果如下: 主页面: 具体代码: <!DO ...

  5. B树索引

    在SQL Server中,索引是一种增强式的存在,这意味着,即使没有索引,SQL Server仍然可以实现应有的功能.但索引可以在大多数情况下大大提升查询性能高.在OLAP中尤其明显,要完全理解索引的 ...

  6. 删除内容并不能删除field structure -- features_revert

    把内容删了但field structure还在, 在manage_field界面,field还在.http://drupal.stackexchange.com/questions/21501/rev ...

  7. OpenCV3编程入门笔记(1)图像载入、显示、保存、变换灰度图

    图像载入.显示.保存函数: 1         图像载入函数:imread()   Mat imread(const string& filename, int flags=1); const ...

  8. 如何编写跨平台的Java代码

    欢迎和大家交流技术相关问题: 邮箱: jiangxinnju@163.com 博客园地址: http://www.cnblogs.com/jiangxinnju GitHub地址: https://g ...

  9. 清理PC垃圾

    @echo off pause echo 正在清除系统垃圾文件,请稍等...... del /f /s /q %systemdrive%\*.tmp del /f /s /q %systemdrive ...

  10. 你的java 代码对JIT编译友好吗?

    JIT编译器是Java虚拟机(以下简称JVM)中效率最高并且最重要的组成部分之一.但是很多的程序并没有充分利用JIT的高性能优化能力,很多开发者甚至也并不清楚他们的程序有效利用JIT的程度. 在本文中 ...