【洛谷P4001】狼抓兔子【网络流】

LAMMPS模拟新合金没势函数?手把手教你用`pair_style hybrid`混合势函数(附FeCMnSiTi案例) 本文详细介绍了在LAMMPS中如何使用`pair_style hybrid`混合势函数模拟新型高熵合金(如FeCMnSiTi),解决缺乏现成势函数的问题。通过实战案例,涵盖参数查找、命令编写、错误排查等关键步骤,特别适合处理多组元体系的复杂相互作用。文章还提供了EAM势函数与LJ势的组合技巧,帮助研究者准确模拟合金性能。 阅读详情

题目大意:

题目链接:https://www.luogu.org/problemnew/show/P4001
现在小朋友们最喜欢的"喜羊羊与灰太狼",话说灰太狼抓羊不到,但抓兔子还是比较在行的,而且现在的兔子还比较笨,它们只有两个窝,现在你做为狼王,面对下面这样一个网格的地形:
在这里插入图片描述
左上角点为 ( 1 , 1 ) (1,1) (1,1),右下角点为 ( N , M ) (N,M) (N,M)(上图中 N = 3 , M = 4 N=3,M=4 N=3,M=4)。有以下三种类型的道路

  1. ( x , y ) &lt; = = &gt; ( x + 1 , y ) (x,y)&lt;==&gt;(x+1,y) (x,y)<==>(x+1,y)
  2. ( x , y ) &lt; = = &gt; ( x , y + 1 ) (x,y)&lt;==&gt;(x,y+1) (x,y)<==>(x,y+1)
  3. ( x , y ) &lt; = = &gt; ( x + 1 , y + 1 ) (x,y)&lt;==&gt;(x+1,y+1) (x,y)<==>(x+1,y+1)

道路上的权值表示这条路上最多能够通过的兔子数,道路是无向的. 左上角和右下角为兔子的两个窝,开始时所有的兔子都聚集在左上角 ( 1 , 1 ) (1,1) (1,1)的窝里,现在它们要跑到右下角 ( N , M ) (N,M) (N,M)的窝中去,狼王开始伏击这些兔子.当然为了保险起见,如果一条道路上最多通过的兔子数为 K K K,狼王需要安排同样数量的 K K K只狼,才能完全封锁这条道路,你需要帮助狼王安排一个伏击方案,使得在将兔子一网打尽的前提下,参与的狼的数量要最小。因为狼还要去找喜羊羊麻烦。


思路:

最小割等于最大流。
然后就是一道板子题了。注意这道题的边是双向的,所以反向边和正向边的流量是一样的。
点数 1 0 6 10^6 106,最好加上当前弧优化。


代码:

#include <queue>
#include <cstdio>
#include <string>
#include <cstring>
#include <algorithm>
using namespace std;

const int N=1000010,Inf=1e9;
int n,m,tot=1,S,T,maxflow,head[N],cur[N],dep[N];
bool vis[N];

struct edge
{
	int next,to,flow;
}e[N*6];

int C(int x,int y)
{
	return (x-1)*m+y;
}

int read()
{
	int d=0;
	char ch=getchar();
	while (!isdigit(ch)) ch=getchar();
	while (isdigit(ch))
		d=(d<<3)+(d<<1)+ch-48,ch=getchar();
	return d;
}

void add(int from,int to,int flow)
{
	e[++tot].to=to;
	e[tot].flow=flow;
	e[tot].next=head[from];
	head[from]=tot;
}

bool bfs()
{
	memcpy(cur,head,sizeof(cur));
	memset(dep,0x3f3f3f3f,sizeof(dep));
	queue<int> q;
	q.push(S);
	dep[S]=1;
	while (q.size())
	{
		int u=q.front(),v;
		q.pop();
		for (int i=head[u];~i;i=e[i].next)
		{
			v=e[i].to;
			if (dep[v]>dep[u]+1&&e[i].flow)
			{
				dep[v]=dep[u]+1;
				q.push(v);
			}
		}
	}
	return dep[T]<Inf;
}

int dfs(int x,int flow)
{
	int low=0;
	if (x==T)
	{
		maxflow+=flow;
		return flow;
	}
	int used=0;
	for (int i=cur[x];~i;i=e[i].next)
	{
		int y=e[i].to;
		cur[x]=i;
		if (dep[y]==dep[x]+1&&e[i].flow)
		{
			low=dfs(y,min(e[i].flow,flow-used));
			if (low)
			{
				used+=low;
				e[i].flow-=low;
				e[i^1].flow+=low;
				if (used==flow) break;
			}
		}
	}
	return used;
}

void dinic()
{
	while (bfs())
		dfs(S,Inf);
}

int main()
{
	memset(head,-1,sizeof(head));
	n=read(); m=read();
	S=n*m+1; T=n*m+2;
	for (int i=1;i<=n;i++)
		for (int j=1;j<m;j++)
		{
			int x;
			x=read();
			add(C(i,j),C(i,j+1),x);
			add(C(i,j+1),C(i,j),x);
		}
	for (int i=1;i<n;i++)
		for (int j=1;j<=m;j++)
		{
			int x;
			x=read();
			add(C(i,j),C(i+1,j),x);
			add(C(i+1,j),C(i,j),x);
		}
	for (int i=1;i<n;i++)
		for (int j=1;j<m;j++)
		{
			int x;
			x=read();
			add(C(i,j),C(i+1,j+1),x);
			add(C(i+1,j+1),C(i,j),x);
		}
	add(S,1,Inf); add(1,S,0);
	add(C(n,m),T,Inf); add(T,C(n,m),0);
	dinic();
	printf("%d",maxflow);
	return 0;
}
SAM3 几行代码支持任意图像分辨率,减少显存占用(针对transformers库) 几行代码让sam3支持任意图像分辨率 阅读详情

相关推荐

我用 AI 做了个开源地图工具:从 OpenStreetMap 一键获取全国 AOI/POI 数据

本文介绍了一款免费开源的OSM数据查询与可视化工具,旨在解决Overpass QL语法晦涩、数据获取门槛高的问题。工具支持面数据(AOI)、点数据(POI)及路网三种查询模式,内置30+常用模板实现一键检索。具备高德与OSM双底图切换、坐标自动转换功能,支持GeoJSON、SHP、CSV多格式导出,同时保留自定义查询能力。作为纯HTML单文件应用,可零成本部署至GitHub Pages在线使用。该工具有效降低了地理数据获取难度,是替代商业地图API、高效提取全球开源地理信息的实用利器。

weixin_45812624的博客 587

【洛谷4001】 [ICPC-Beijing 2006]狼抓兔子(最小割)

传送门 洛谷 Solution 直接跑最小割板子就好了。 代码实现 #include<stdio.h> #include<stdlib.h> #include<string.h> #include<math.h> #include<algorithm> #include<queue> #include<set&...

araw94333的博客 167

2024最新指南:如何用Python批量下载Sentinel-2数据(附避坑清单)

本文提供2024年最新Python批量下载Sentinel-2遥感数据的完整指南,涵盖环境配置、API准备、核心下载流程实现及实战避坑清单。通过智能查询器、断点续传下载器等实用工具,帮助用户高效获取遥感数据,避免常见网络问题和数据完整性验证失败。

silver的专栏 618

[BeiJing2006]狼抓兔子

[BeiJing2006]狼抓兔子 BZOJhttp://www.lydsy.com/JudgeOnline/problem.php?id=1001 洛谷https://www.luogu.org/problemnew/show/P4001 题目描述 现在小朋友们最喜欢的"喜羊羊与灰太狼",话说灰太狼抓羊不到,但抓兔子还是比较在行的,而且现在的兔子还比较笨,它们只有两个窝,现在你做为狼...

238

UE 动态获取 资源缩略图 下载到本地或返回图片信息

UE 动态加载资源缩略图 返回图片信息或保存到本地

qq_46080252的博客 1937

懒人精灵手游内存技术分析

教学声明:全套教程教学用到的游戏采用手游私服网游进行测试,不针对任何游戏。教学只做计算机技术研究,不做其他用途。

yizhihaoren123的博客 1656

洛谷P4001 [BJOI2006]狼抓兔子

题目描述现在小朋友们最喜欢的"喜羊羊与灰太狼",话说灰太狼抓羊不到,但抓兔子还是比较在行的,而且现在的兔子还比较笨,它们只有两个窝,现在你做为狼王,面对下面这样一个网格的地形:左上角点为(1,1),右下角点为(N,M)(上图中N=3,M=4).有以下三种类型的道路1:(x,y)&lt;==&gt;(x+1,y)2:(x,y)&lt;==&gt;(x,y+1)3:(x,y)&lt;==&gt;(x+...

蒟蒻的博客 419

如何解决Elsevier和IEEE期刊之间参考文献的转换问题

Elsevier期刊和IEEE旗下的期刊两者模版互相转换的时候,会发现Elsevier模版的参考文献是存放在.bib文件下的,然后在.tex文件中直接引用即可。3. 在IEEE的.tex文件中的\end{document}命令行之前,添加下面的这句话(ps:\bibliography{**}中的**名称即为.bib文件的名称)如何将Elsevier的参考文献快速的转成IEEE期刊可用的格式,是本博客需要解决的问题。2. 将下载好的.bib文件,上传到IEEE的latex文件中。

薰珞婷紫小亭子的博客 1675

bzoj1001: [BeiJing2006]狼抓兔子

很明显是最小割。然而我不会算时间复杂度。据说会RE。然后得知了平面图转对偶图。spfa跑的好慢===遂又写了dijkstra===然而还是跑的好慢啊 啊啊 #include<cstdio> #include<cstring> #include<iostream> #include<queue> #include<algorit...

weixin_30692143的博客 344

Altium Designer应用技巧13: 四层板的拼版方法

本文介绍在Altium Designer中,进行4层板的拼版方法。Altium Designer有多种拼版方法,本文选择最直观的复制、删帖方法来完成,步骤如下: 1、看一下原始文件,如下图所示,我们要对该板进行拼版操作。 2、通过菜单“报告”-“板子信息”得到板子大小,在这里一般切换为mm比较好操作,我们可以使用快捷键"q"。 3、如果是水平拼版,我们需要关心水平长度;如果是垂直拼版...

snmplink的博客 1万+

把 ABAP ALV 做成可点、可改、可保存:Interactive Editable ALV Grid 的一套落地打法

文章摘要(148字): SAP ALV报表开发中,交互式可编辑网格的实用方案需解决三个核心问题:数据展示、交互下钻与编辑保存。本文以SCARR航空公司和SFLIGHT航班数据为例,演示如何实现双击主列表下钻明细、动态切换编辑模式、精确保存修改的技术路线。关键点包括:通过PF-STATUS添加业务按钮、使用CHECK_CHANGED_DATA同步前端修改、保护关键字段避免误操作,以及变更数据的审计跟踪方法。该方案适用于SAP GUI环境下的快速业务调整需求,相比Fiori开发具有更高的实施效率。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 230

bzoj1001[狼爪兔子]最小割转最短路

我们都知道这个定理,最小割=最大流。 所以,一看到最小割的问题果断转化成最大流写,然后这道题就T了- - 然后就不知所措了,看了网上的题解才知道最小割可以转成最大流- - bzoj1001:http://www.lydsy.com/JudgeOnline/problem.php?id=1001 题意就是用最少的狼封闭所有道路(即切断起点和终点),典型的最小割模型。 推荐参

nikelong的博客 5247

C# 的 Dapper 库高级进阶:刨根问底的深度解析

通过今天的探索,我们了解了 Dapper 的一些高级功能,包括如何处理复杂的查询、执行批量操作以及如何优化性能。希望这篇深入浅出的文章能帮助你在实际项目中更好地运用 Dapper!🎈好了,小伙伴们,今天的分享就到这里啦!如果你有任何疑问或者想要分享自己的经验,请在评论区留言。我们下次再见!👋上述示例代码仅供参考,实际使用时请根据项目需求进行适当调整。✨Dapper 官方文档Dapper 性能优化指南Dapper 动态参数使用来同时执行多个查询。利用Execute和Query方法来简化 SQL 调用。

java专栏 813

洛谷P4001 狼抓兔子

题目来源:ICPC-Beijing 2006题目算法:网络流,最小割特别注意:因为这道题每条路都是双向路径,所以在建路径时需要不论正向边还是反向边都要把初始流量定义为初始值,也就是这条边的权值,也就是每一条路径只需要正反各建边一次。然后就是网络流和最小割的算法了。

2401_86416288的博客 256

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

[洛谷P4001] [BJOI2006]狼抓兔子 --- 网络流-最小割

题目描述 现在小朋友们最喜欢的”喜羊羊与灰太狼”,话说灰太狼抓羊不到,但抓兔子还是比较在行的,而且现在的兔子还比较笨,它们只有两个窝,现在你做为狼王,面对下面这样一个网格的地形: 左上角点为(1,1),右下角点为(N,M)(上图中N=3,M=4).有以下三种类型的道路 1:(x,y)&lt;==&gt;(x+1,y) 2:(x,y)&lt;==&gt;(x,y+1) 3:(x,y)&...

笑面蘑菇的博客 293

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

【未完成】[ICPC-Beijing 2006] 洛谷P4001 狼抓兔子 [最小割]

喷子闭嘴。

Isaac Regulus的博客 194

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

bzoj1001(洛谷P4001) - [Beijing2006]狼抓兔子

Author : hiang bzoj1001 洛谷P4001 Time Limit:15 Sec Memory Limit:162 MB Description 现在小朋友们最喜欢的"喜羊羊与灰太狼",话说灰太狼抓羊不到,但抓兔子还是比较在行的,而且现在的兔子还比较笨,它们只有两个窝,现在你做为狼王,面对下面这样一个网格的地形: 左上角点为(1...

268

洛谷$P4001\ [ICPC-Beijing 2006]$狼抓兔子 网络流+对偶图

正解:网络流+对偶图 解题报告: 传送门! $umm$日常看不懂题系列了$kk$.其实就是说,给定一个$n\cdot n$的网格图,求最小割$QwQ$ 然后网格图的话显然是个平面图,又看到数据范围$n\leq 1000$,显然就考虑平面图转对偶图呗 然后好像就没有什么细节了,,,? 对了,$bzoj$上的话要特判1,洛谷上没有这个数据就不用辣$QwQ$ $QwQ$ (在$...

qq_42692055的博客 191

网络流_洛谷P4001_最小割

题目: 题目描述 现在小朋友们最喜欢的"喜羊羊与灰太狼",话说灰太狼抓羊不到,但抓兔子还是比较在行的,而且现在的兔子还比较笨,它们只有两个窝,现在你做为狼王,面对下面这样一个网格的地形: 左上角点为(1,1),右下角点为(N,M)(上图中N=3,M=4).有以下三种类型的道路 1:(x,y)<==>(x+1,y) 2:(x,y)<==>(x,y+1) 3:(x,y)<...

phacpf123 163

[Luogu P4001] [BZOJ 1001] [BJOI2006]狼抓兔子

洛谷传送门 BZOJ传送门 题目描述 现在小朋友们最喜欢的”喜羊羊与灰太狼”,话说灰太狼抓羊不到,但抓兔子还是比较在行的,而且现在的兔子还比较笨,它们只有两个窝,现在你做为狼王,面对下面这样一个网格的地形: 左上角点为(1,1)(1,1)(1,1),右下角点为(N,M)(N,M)(N,M)(上图中N=3,M=4N=3,M=4N=3,M=4).有以下三种类型的道路 1:(x,y...

LPA的博客 315

[洛谷P4001][BJOI2006]狼抓兔子

题目大意:给你一个n*m的网格图,有三种边,横的,纵的和斜的,要你求出它的最小割 题解:网络流 卡点:1.无向图,反向弧容量应和正向弧相同 C++ Code: #include<cstdio> #include<cstring> #include<cctype> #define maxn 1010*1010 using namespac...

weixin_33923148的博客 135

BZOJ1001: [BeiJing2006]狼抓兔子(洛谷P4001)

平面图最小割->对偶图最短路 BZOJ题目传送门 洛谷题目传送门 比较经典的一道平面图最小割转对偶图最短路的题。 推荐这个 我的对偶图标号方法: 注意特判n==1||m==1的情况 代码: #include #include #include #include #include #define N 1005 #define K N*N #define M N*N*3 using

forezxl的博客 361

[BJOI2006]狼抓兔子

题目:BZOJ1001、洛谷P4001。 题目大意:在一张n×m的网格图中,每个格子都与其右、下、右下方各连有一条带权无向边。现在要你割去一些边,使得左上角的点无法到达右下角的点。并且要割掉的边的总权值最小。问最小是多少。 解题思路:题意是求最小割,根据最小割等于最大流的定理,转化为最大流即可。 由于无向图,建反向边时容量和正向边一样。 但本题裸的dinic是过不了的,需要加一个优化:如果...

weixin_30587025的博客 85

网络流题目题单

网络流题单 http://www.cnblogs.com/LadyLex/p/7601119.html 感谢xzyxzy 题目 1、练基础 [X] P3376 【模板】网络最大流 https://www.luogu.org/problemnew/show/3376 [X] P3381 【模板】最小费用最大流 https://www.luogu.org/problemnew/show/3381 [...

weixin_30563917的博客 147

「题单」网络流『最大流/最小割』

由于最大流=最小割 这里不另起一博客 但会标记 模板/假模板 洛谷P1343 地震逃生『提高+/省选-』『最大流』 题解 洛谷P2740 [USACO4.2]草地排水Drainage Ditches『提高+/省选-』『最大流』 洛谷P2936 [USACO09JAN]全流Total Flow『提高+/省选-』『最大流』 洛谷P3376 【模板】网络最大流『提高+/省选-』『最大流』 洛谷P4...

weixin_34279246的博客 438

题解 UVA1376 【Animal Run】

题解 UVA1376 【Animal Run】 双倍经验题 qwqqqqwqqqqwqqq 如果您 ACACAC 了本题,您可以去隔壁洛谷P4001狼抓兔子 (完全一样的题目,只是需要更改一下格式) 本题表面上看着像是网络流最小割,但是网络流蒟蒻不会的复杂度可能无法接受 所以本题是一个最短路 所以需要把图转为对偶图 将原图内围成的每一个三角形看作一个虚点 因为要将起点和终点分割开,所以所练的路径异...

zhousc2003的博客 268
上一篇: 【洛谷P1801】黑匣子【堆】
下一篇: 【牛客想开了大赛2 A】平面【数论,数学】
stoorz1023
博客等级 码龄9年 101粉丝 595原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值