题目大意

给定一张无向图,需要消耗代价才能使一条边被【数据删除】,求使这张图不连通的最小代价。

一看就是最小割的应用啊。。。

从 \(u\) 到 \(v\),边权为 \(w\) 的边,建两条:一条从 \(u\) 到 \(v\) ,边权为 \(w\),另一条从 \(v\) 到 \(u\),边权也为 \(w\)。

然后直接跑 \(\rm Dinic\) 就行了qwq。

code:

#include<cstring>
#include<cstdio>
#include<queue>
const int M=1e6+5;
struct Edge{
int to,nx,flow;
}e[M<<4];
int n,m,s,t,cnt,d[M],h[M],sur[M],id[1005][1005];
inline void Add(int x,int y,int flow){
e[++cnt]=(Edge){y,h[x],flow};h[x]=cnt;
}
inline int min(const int x,const int y){
return x>y?y:x;
}
inline bool BFS()
{
std::queue<int>q;
memset(d,0,(n*m+1)<<2);
d[s]=1;q.push(s);
while(!q.empty()){
int u=q.front();q.pop();
for(int E=h[u];E;E=e[E].nx)if(e[E].flow){
int v=e[E].to;
if(!d[v]){
d[v]=d[u]+1;
q.push(v);
}
}
}
return d[t];
}
inline int DFS(int u,int flow)
{
if(u==t)return flow;
int used=flow;
for(int&E=sur[u];E;E=e[E].nx)if(e[E].flow){
int v=e[E].to;
if(d[u]+1==d[v])
{
int f=DFS(v,min(used,e[E].flow));
e[E].flow-=f,e[E^1].flow+=f;used-=f;
if(!f)d[v]=0;if(!used)return flow;
}
}
return flow-used;
}
signed main(){
int i,j,ans=0,flow;
scanf("%d%d",&n,&m);
for(i=1;i<=n;++i)for(j=1;j<=m;++j)id[i][j]=++cnt;
cnt=1;s=id[1][1];t=id[n][m];
for(i=1;i<=n;++i)for(j=1;j<m;++j){
int&x=id[i][j],&y=id[i][j+1];
scanf("%d",&flow);
Add(x,y,flow);Add(y,x,0);
Add(y,x,flow);Add(x,y,0);
}
for(i=1;i<n;++i)for(j=1;j<=m;++j){
int&x=id[i][j],&y=id[i+1][j];
scanf("%d",&flow);
Add(x,y,flow);Add(y,x,0);
Add(y,x,flow);Add(x,y,0);
}
for(i=1;i<n;++i)for(j=1;j<m;++j){
int&x=id[i][j],&y=id[i+1][j+1];
scanf("%d",&flow);
Add(x,y,flow);Add(y,x,0);
Add(y,x,flow);Add(x,y,0);
}
while(BFS()){
for(int u=1;u<=n*m;++u)sur[u]=h[u];
while(int flow=DFS(s,2e9))ans+=flow;
}
printf("%d",ans);
}

LGP4001题解的更多相关文章

  1. 2016 华南师大ACM校赛 SCNUCPC 非官方题解

    我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...

  2. noip2016十连测题解

    以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #incl ...

  3. BZOJ-2561-最小生成树 题解(最小割)

    2561: 最小生成树(题解) Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1628  Solved: 786 传送门:http://www.lyd ...

  4. Codeforces Round #353 (Div. 2) ABCDE 题解 python

    Problems     # Name     A Infinite Sequence standard input/output 1 s, 256 MB    x3509 B Restoring P ...

  5. 哈尔滨理工大学ACM全国邀请赛(网络同步赛)题解

    题目链接 提交连接:http://acm-software.hrbust.edu.cn/problemset.php?page=5 1470-1482 只做出来四道比较水的题目,还需要加强中等题的训练 ...

  6. 2016ACM青岛区域赛题解

    A.Relic Discovery_hdu5982 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Jav ...

  7. poj1399 hoj1037 Direct Visibility 题解 (宽搜)

    http://poj.org/problem?id=1399 http://acm.hit.edu.cn/hoj/problem/view?id=1037 题意: 在一个最多200*200的minec ...

  8. 网络流n题 题解

    学会了网络流,就经常闲的没事儿刷网络流--于是乎来一发题解. 1. COGS2093 花园的守护之神 题意:给定一个带权无向图,问至少删除多少条边才能使得s-t最短路的长度变长. 用Dijkstra或 ...

  9. CF100965C题解..

    求方程 \[ \begin{array}\\ \sum_{i=1}^n x_i & \equiv & a_1 \pmod{p} \\ \sum_{i=1}^n x_i^2 & ...

随机推荐

  1. 学习JDBC遇到的一些问题

    1. 数据库版本与驱动对应问题 参考官方文档:https://dev.mysql.com/doc/connector-j/8.0/en/connector-j-versions.html 具体详情还需 ...

  2. imagenamed和imageWithContentOfFile的区别

    @implementation ViewController /** 图片的两种加载方式: 1> imageNamed: a. 就算指向它的指针被销毁,该资源也不会被从内存中干掉 b. 放到As ...

  3. Java线程--Phaser使用

    原创:转载需注明原创地址 https://www.cnblogs.com/fanerwei222/p/11867895.html Java线程--Phaser使用, 代码里头有详细注释: packag ...

  4. 云端iclound使用-陈棚

    使用NSmetadataQuery查询文档,增加,删除,编辑 界面设计完成后效果如图: 程序清单:FKDiary.h @interface FKDiary : UIDocument @property ...

  5. 关于static

    static是静态的意思: static修饰的成员变量,在内存中存在于方法区中,只有一份,非静态的成员变量在堆中,每个对象中都有一份 public class Demo1 {    public st ...

  6. CephFS分布式文件系统

    目录 组件 基本组件 块存储 文件存储 对象存储 特点: 1.高性能: 2.高可用性: 3.高可扩展性: 4.特性丰富: 详细配置 一.准备机器 1.修改主机名 2.修改hosts文件 二.Ceph节 ...

  7. CentOS更新VMware Tools及设置共享文件夹

    CentOS设置共享文件夹 设置共享文件夹 点击虚拟机->设置 2. 打开虚拟机设置->选项->共享文件夹->总是启用->添加 3. 点击下一步创建主机路径并命名 4. ...

  8. Solution -「LOCAL」二进制的世界

    \(\mathcal{Description}\)   OurOJ.   给定序列 \(\{a_n\}\) 和一个二元运算 \(\operatorname{op}\in\{\operatorname{ ...

  9. Solution -「CF 575G」Run for beer

    \(\mathcal{Description}\)   Link.   给定 \(n\) 个点 \(m\) 条边的无向图,边有边权,一个人初始速度为 \(1\),每走一条边速度 \(\div10\), ...

  10. nginx负载均衡中利用redis解决session一致性问题

    关于session一致性的现象及原因不是本小作文的重点,可以另行找杜丽娘O(∩_∩)O哈哈~重点是利用redis集中存储共享session的实际操作. 一.业务场景:nginx/tomcat/redi ...