前言

论卡常的重要性
评测记录。。。

卡常前。。。

卡常后。。。

竟然。。。就A了!!!!

链接

https://www.luogu.org/problemnew/show/P4001

大意

有无限只兔子在左上角,现在它们要走到右下角,之间有很多通道,但通道只能容纳一定数量的兔子,狼可以在一定道路堵截兔子,一只狼只能堵截一条兔子,求能堵截所有兔子的狼数。

思路

这道题就是就相当于求最小割,按照这张图上说的建图差不多就得了

记得反向边的容量也要为K,因为这是无向图!
似乎这道题也能用 SPFA S P F A SPFA过,但本蒟蒻太弱(lan)就没打了。。。

代码

#include<cstring>
#include<cstdio>
#include<queue>
#define N 3500001
#define id(i,j) (~-i)*m+j
using namespace std;int m,n,f,s,t,sum,k;char c;
struct node{int next,to,w;}e[N<<1];
int l[N],tot,d[N];
int read()
{f=0;while (c=getchar(),c<=47||c>=58);f=(f<<3)+(f<<1)+c-48;while (c=getchar(),c>=48&&c<=57) f=(f<<3)+(f<<1)+c-48;return f;
}
void add(int u,int v,int w)
{e[tot]=(node){l[u],v,w};l[u]=tot++;e[tot]=(node){l[v],u,w};l[v]=tot++;return;
}
bool bfs()
{memset(d,-1,sizeof(d));queue<int>q;d[s]=0;q.push(s);while(q.size()){int x=q.front();q.pop();for(int i=l[x];~i;i=e[i].next){int y=e[i].to;if(e[i].w&&d[y]==-1){d[y]=d[x]+1;q.push(y);if(y==t) return true;}}}return false;
}
int dfs(int x,int flow)
{if(x==t||!flow) return flow;int rest=0,k=0;for(int i=l[x];~i;i=e[i].next){int y=e[i].to;if(d[x]+1!=d[y]||!e[i].w)continue;f=dfs(y,min(flow-rest,e[i].w));if(!f) {d[y]=-1;continue;}//这里很重要e[i].w-=f;rest+=f;e[i^1].w+=f;if(rest==flow) return flow;//这里也是}return rest;
}
void dinic()
{while(bfs()) sum+=dfs(s,1e9);return;
}
int main()
{memset(l,-1,sizeof(l));n=read();m=read();s=1;t=id(n,m);for(int i=1;i<=n;i++)for(int j=1;j<m;j++)k=read(),add(id(i,j),id(i,j+1),k);for(int i=1;i<n;i++)for(int j=1;j<=m;j++)k=read(),add(id(i,j),id(i+1,j),k);for(int i=1;i<n;i++)for(int j=1;j<m;j++)k=read(),add(id(i,j),id(i+1,j+1),k);dinic();printf("%d",sum);
}

【最大流,SPFA,卡常】狼抓兔子相关推荐

  1. BZOJ 1001: [BeiJing2006]狼抓兔子【最大流/SPFA+最小割,多解】

    1001: [BeiJing2006]狼抓兔子 Time Limit: 15 Sec  Memory Limit: 162 MB Submit: 23822  Solved: 6012 [Submit ...

  2. bzoj 1001狼抓兔子

    1001: [BeiJing2006]狼抓兔子 Time Limit: 15 Sec   Memory Limit: 162 MB Submit: 15622   Solved: 3771 [ Sub ...

  3. 1001: [BeiJing2006]狼抓兔子(对偶图)

    1001: [BeiJing2006]狼抓兔子 Time Limit: 15 Sec  Memory Limit: 162 MB Submit: 23595  Solved: 5940 Descrip ...

  4. P2030 - 【BJOI2006】狼抓兔子

    P2030 - [BJOI2006]狼抓兔子 Description 八中OJ上本题链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1001  现 ...

  5. 【BJOI2006】狼抓兔子

    P2030 - [BJOI2006]狼抓兔子 Description 现在小朋友们最喜欢的"喜羊羊与灰太狼",话说灰太狼抓羊不到,但抓兔子还是比较在行的,而且现在的兔子还比较笨,它 ...

  6. BZOJ 1001 狼抓兔子

    1001: [BeiJing2006]狼抓兔子 Time Limit: 15 Sec  Memory Limit: 162 MB Submit: 25653  Solved: 6512 [Submit ...

  7. BZOJ1001 狼抓兔子 终于过了!

    时间来不及了,先贴代码吧!有时间再写. 好苦逼啊,WA了若干次,还有一次RE,一次TLE. 虽然主要运用的算法和资料都由师兄提供了.还是太弱了,太天真了. 首先,数据范围就WA了,RE了,TLE了. ...

  8. 【bzoj1001】【狼抓兔子】

    1001: [BeiJing2006]狼抓兔子 Time Limit: 15 Sec Memory Limit: 162 MB Submit: 12719 Solved: 3017 [Submit][ ...

  9. bzoj1001/BJOI2006 狼抓兔子

    1001: [BeiJing2006]狼抓兔子(传送门) 图论新知识..没学过.. 平面图最小割等于对偶图的最短路 详见课件:http://wenku.baidu.com/view/8f1fde586 ...

  10. 【BZOJ1001】狼抓兔子题解

    BZOJ1001: [BeiJing2006]狼抓兔子 Description 现在小朋友们最喜欢的"喜羊羊与灰太狼",话说灰太狼抓羊不到,但抓兔子还是比较在行的,而且现在的兔子还 ...

最新文章

  1. 马斯克“口无遮拦”发推特又挨批,被指无视法院命令
  2. 自律到极致-人生才精致:第2期
  3. hi3559 h264
  4. 简单的java多线程源码分享(二)
  5. python 的 str bytes 区别
  6. 关于 Oracle分页数据重复的问题
  7. python装饰器详解51-python装饰器使用实例详解
  8. it 脑裂_脑裂官方版下载
  9. python寻找完全平方数_少儿编程|Python小课堂 – 寻找aabb完全平方数
  10. SQLCel匹配原数据信息,更新原数据所有信息并插入新数据的过程
  11. 创业者防坑手册:面对强大的资本力量,你该如何正当防卫?
  12. 与Lucene 4.10配合的中文分词比较
  13. 论文的主要观点怎么写?
  14. 华为鸿蒙系统老手机能用吗_华为使用自家“鸿蒙”系统,旧手机的安卓系统可以更新成那个系统吗?...
  15. ChatGPT开源平替——OpenChatKit(前OpenAI团队打造)
  16. AD网络标号高亮设置
  17. systemd、upstart和system V
  18. 文献管理软件 | endnote与zotero的对比
  19. 银行存管java 对接_Jay su-华正商务旅行社-4年中级java工程师-猿急送
  20. 手把手教你搭建SpringBoot+MySQL+Mybatis项目(采坑日记)

热门文章

  1. 【JavaScript框架封装】实现一个类似于JQuery的动画框架的封装
  2. Python Flask Web框架教程 1 Hellow, World!
  3. 技术团队工作外娱乐放松活动方案收集
  4. 面对Exchange邮箱的英文界面,我们应该这么办!
  5. 游戏的本质[转自网易]
  6. 超级DOS命令全集--转
  7. “内忧外患”,薄荷健康危局乍现
  8. 两点之间最快的路线竟然不是直线
  9. 一个Boss直聘机器人, 自动回复发简历
  10. 天天生鲜项目开发笔记