题目大意

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

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

从 \(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. bom-setTimeout

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

  2. oracle锁表问题处理

    文章转载自:http://blog.itpub.net/31397003/viewspace-2142672/ "ORA-00054: 资源正忙, 但指定以 NOWAIT 方式获取资源, 或 ...

  3. 【转载收藏】使用Jacoco远程统计tomcat服务的代码覆盖率

    在做软件开发的时候经常会遇到做各种测试,这里介绍一种本人遇到的:代码覆盖率测试, 这个测试非常实用,能发现许多无效的模块和代码.强烈推荐!!!!! 网上好多资料都不全,而且没有详细的配置流程 本文将简 ...

  4. iOS测试模板

    测试模板,每次写一个功能测试Demo时总是要新建一个工程,导入一些第三方库,比较麻烦,先提供一个测试模板,提供一些常用第三方库,自己就不用导了 使用Cocospod管理第三方库 常用(其他自行添加) ...

  5. 2022寒假集训day5

    day5 五道栈的题加上字符串. 单调队列. T1 表达式括号匹配   洛谷P1739 题目描述 假设一个表达式有英文字母(小写).运算符(+,-,*,/)和左右小(圆)括号构成,以"@&q ...

  6. HTTPStatus(状态码返回)详情

    1xx(临时响应) 表示临时响应并需要请求者继续执行操作的状态代码. 代码 说明 100 (继续) 请求者应当继续提出请求. 服务器返回此代码表示已收到请求的第一部分,正在等待其余部分. 101 (切 ...

  7. 关于Java多线程-interrupt()、interrupted()、isInterrupted()解释

    多线程先明白一个术语"中断状态",中断状态为true,线程中断. interrupt():就是通知中止线程的,使"中断状态"为true. isInterrupt ...

  8. ASP.NET Core 6框架揭秘实例演示[03]:Dapr初体验

    也许你们可能没有接触过Dapr,但是一定对它"有所耳闻",感觉今年它一下子就火了,一时间很多人都在谈论它.我们从其命名(Dapr的全称是"分布式应用运行时Distribu ...

  9. 05 BOM与DOM

    BOM和DOM 1. 什么是BOM和DOM 到目前为止,我们已经学过了JavaScript的一些简单的语法.但是这些简单的语法,并没有和浏览器有任何交互. 也就是我们还不能制作一些我们经常看到的网页的 ...

  10. Spring Boot对Spring Data JPA的支持

    前两篇介绍了Spring Data JPA的基本使用,本篇介绍Spring Boot 对JPA的支持.如下: 1)导入坐标 2)注解配置 其他配置同Spring Data JPA应用之常规CRUD操作 ...