题目链接

luogu

bzoj

\(Solution\)

这个貌似没有什么好讲的吧,直接按照这个给的图建图就好了啊,没有什么脑子,但是几点要注意的:

  1. 建双向边啊.
  2. 要这么写,中间还要写一个\(while\)否则会\(T\)的:
while(bfs()){
while((k=dfs(s,inf)))
ans+=k;
}

\(Code\)

#include<bits/stdc++.h>
#define file(a) freopen(a".in","r",stdin);freopen(a".out","w",stdout)
#define rg register
using namespace std;
typedef long long ll;
const int inf=1e9;
int n,m,s=1,t=26,z,y,x;
inline int read(){
int x=0,f=1;char c=getchar();
while(c<'0'||c>'9') f= (c=='-')?-1:1,c=getchar();
while(c>='0'&&c<='9') x=x*10+c-48,c=getchar();
return f*x;
}
struct node{
int to,next,v;
}a[6000001];
int cnt,head[1000001];
void add(int x,int y,int c){
a[++cnt].to=y,a[cnt].next=head[x],a[cnt].v=c,head[x]=cnt;
a[++cnt].to=x,a[cnt].next=head[y],a[cnt].v=c,head[y]=cnt;
}
queue<int>q;
int dep[1000001];
int bfs(){
memset(dep,0,sizeof(dep));
q.push(s),dep[s]=1;
while(!q.empty()){
int now=q.front();
q.pop();
for(int i=head[now];i;i=a[i].next){
int v=a[i].to;
if(!dep[v]&&a[i].v)
q.push(v),dep[v]=dep[now]+1;
}
}
return dep[t]?1:0;
}
int dfs(int k,int list){
if(k==t)
return list;
for(int i=head[k];i;i=a[i].next){
int v=a[i].to;
if(a[i].v&&dep[v]==dep[k]+1){
int p=dfs(v,min(list,a[i].v));
if(p){
a[i].v-=p;
if(i&1)
a[i+1].v+=p;
else a[i-1].v+=p;
return p;
}
}
}
dep[k]=0;
return 0;
}
int Dinic(){
int ans=0,k;
while(bfs()){
while((k=dfs(s,inf)))
ans+=k;
}
return ans;
}
int main(){
n=read(),m=read(),s=1,t=n*m;
for(int i=1;i<=n;i++)
for(int j=1;j<m;j++)
z=read(),x=(i-1)*m+j,y=x+1,add(x,y,z);
for(int i=1;i<n;i++)
for(int j=1;j<=m;j++)
z=read(),x=(i-1)*m+j,y=x+m,add(x,y,z);
for(int i=1;i<n;i++)
for(int j=1;j<m;j++)
z=read(),x=(i-1)*m+j,y=x+m+1,add(x,y,z);
int ans=Dinic();
printf("%d",ans);
}

最新文章

  1. Android系统中的广播(Broadcast)机制简要介绍和学习计划
  2. html块级元素和内联元素小结
  3. php中若干模块的安装
  4. poj 1742 Coins
  5. DUIEngine使用Visual Studio 2010编译Debug_Dll版有关Error MSB3073错误解决方案
  6. linux光盘、U盘的挂载与卸载
  7. linux shell命令行下操作mysql 删除mysql指定数据库下的所有表--亲测成功百分百测试通过--绝对可靠
  8. TRILL浅析
  9. 关于python的可变和不可变对象
  10. nodejs环境的搭建(linux环境centos6.5)
  11. Tarjan算法:求解图的割点与桥(割边)
  12. ceres-solver库编译说明
  13. React Native入门 开发第一个React Native应用
  14. ArcCore重构-目标文件结构化
  15. 深入理解group by 语句的执行顺序 from→where→group by→select(含聚合函数)
  16. listview--Java泛型应用之打造Android万能ViewHolder-超简洁写法
  17. Jackson 解析json数据之忽略解析字段注解@JsonIgnoreProperties
  18. java使用jdbc连接oracle(其他数据库类似)
  19. Asp.net core 学习笔记 (授权)
  20. Styles in Windows Phone

热门文章

  1. 根文件系统的构建与分析(三)之根文件目录及最简/dev目录
  2. PHP函数(四)-变量函数
  3. MySQL简述
  4. 第十二章 Java内存模型与线程(待续)
  5. Hibernate4.3.5搭建Log4j日志环境
  6. 02-25 类成员的访问权限--internal
  7. leetcode908
  8. 【287】◀▶ arcpy 常用类说明
  9. grep家族
  10. POI 生成exel报表