题目大意

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

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

从 \(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. xargs、sort、uniq命令

    xargs.sort.uniq命令,我们由LeetCode的一道题来引入,并使用加以理解: 题目是这样的:写一个 bash 脚本以统计一个文本文件 words.txt 中每个单词出现的频率. word ...

  2. 取消a标签的默认行动(跳转到href)

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. git rebase git merge

    Git rebase 使用方法 1. git checkout feature 2. git rebase master feature 相当于git rebase master + git chec ...

  4. HDOJ 1249 三角形『平面分隔』

    很水拉   为了记规律- - 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1249 分隔平面公式 下面是我自己查找的公式,没有推到过程,但可以给一些链 ...

  5. 01 前端基础之HTML

    目录 前端基础之HTML HTML简介 如何创建及展示 head内常见标签 body内基本标签 特殊符号 常见标签 标签的两大重要属性 列表标签 表格标签 form表单(很重要) 初次体验前后端交互 ...

  6. IDEA 2021 没有Allow parallel run

    IDEA 2021 没有Allow parallel run 尝试运行多个客户端. 新版IDEA找不到Allow parallel run

  7. CentOS7 部署黑客帝国代码雨

    1024程序猿的节日,搞一个黑客帝国画面玩玩 [root@localhost ~]# yum -y install ncurses-devel [root@localhost ~]# yum -y i ...

  8. 从观察者设计模式的角度理解Zookeeper中的Watcher

    前面关于Zookeeper提供的API中,可以观察到大部分接口参数似乎都是用了Wathcerz这个接口.这个在观察者模式中略有涉及,本文重点分析从观察者模式的角度分析该接口. 首先上该接口的UML图: ...

  9. 从命令模式的维度理解Spring 之Application Event

    Spring的事件(Application Event)为Bean与Bean之间的信息通讯提供了支持.当一个Bean处理完一个任务之后,希望另一Bean指定并能做相应的处理,这时我们就需要让另外一个B ...

  10. Spring源码之@Configuration注解解析

    1.前言 ​ Spring注解开发中,我们只需求要类上加上@Configuration注解,然后在类中的方法上面加上@Bean注解即可完成Spring Bean组件的注册.相较于之前的xml配置文件定 ...