HDU3870 Catch the Theves 题解(平面图最小割转最短路)

Unity商业级开发加速器:角色控制与场景优化实战方案 Unity游戏开发中,角色控制不稳、场景渲染卡顿、UI掉帧等问题长期困扰中大型项目团队。其本质源于输入延迟、LOD策略粗放、Canvas重建频繁等底层机制缺陷。通过物理层滤波、无栈状态机、分层剔除、权重图纹理、Canvas分层冻结等工程化方案,可显著提升跨设备一致性与美术程序协作效率。这些技术已在国内37个上线商业项目中验证,覆盖AR教育、MMO手游、工业仿真等多领域,特别适用于追求稳定交付与性能可控的Unity中型研发团队。 阅读详情
 

Catch the Theves

Time Limit: 5000/2000 MS (Java/Others) Memory Limit: 65768/32768 K (Java/Others)
Total Submission(s): 313 Accepted Submission(s): 105


Problem Description
A group of thieves is approaching a museum in the country of zjsxzy,now they are in city A,and the museum is in city B,where keeps many broken legs of zjsxzy.Luckily,GW learned the conspiracy when he is watching stars and told it to zjsxzy.
Zjsxzy decided to caught these thieves,and he let the police to do this,the police try to catch them on their way from A to B. Although the thieves might travel this way by more than one group, zjsxzy's excellent police has already gather the statistics that the cost needed on each road to guard it.
Now ,zjsxzy's conutry can be described as a N*N matrix A,Aij indicates the city(i,j) have bidirectionals road to city(i+1,j) and city(i,j+1),gurad anyone of them costs Aij.
Now give you the map,help zjsxzy to calculate the minimium cost.We assume thieves may travel in any way,and we will catch all passing thieves on a road if we guard it.

Input
The first line is an integer T,followed by T test cases.
In each test case,the first line contains a number N(1<N<=400).
The following N lines,each line is N numbers,the jth number of the ith line is Aij.
The city A is always located on (1,1) and the city B is always located on (n,n).
Of course,the city (i,j) at the last row or last line won't have road to (i,j+1) or (i+1,j).

Output
For each case,print a line with a number indicating the minimium cost to arrest all thieves.

Sample Input
  
1 3 10 5 5 6 6 20 4 7 9

Sample Output
  
18
Hint
The map is like this:

Source
 
 
具体见国家集训队2008论文周冬《两极相通——浅析最大—最小定理在信息学竞赛中的应用》
将s-t连一条边,新增一个s面,最外面的为t面,每一个面当做新图的一个顶点。除了s-t面,相邻两个面连一条边,求s-t的最短路即是原图的最小割。
 
code:
/*
平面图最小割转换为最短路
s-t连边增加一个s平面,除了s-t平面,其它平面有相邻则连边。
*/
#include<cstdio>
#include<vector>
#include<queue>
#include<algorithm>
#define N 400*400
using namespace std;

int t,n,a[405][405];
int v,e,low[N],p[N],q[N],adj[N];
bool f[N];
struct Edge
{
	int v,w,next;
}edge[4*N];
void insert(int u,int v,int w)
{
	edge[e].v=v;edge[e].w=w;
	edge[e].next=adj[u];
	adj[u]=e++;
}
int spfa(int s)
{
	memset(f,0,sizeof(f));
	memset(low,0x7f,sizeof(low));
	//fill(low,low+n*n+5,999999999);
	int i,j,k,x,h=0,t=1;
	v=n*n+1;
	q[t]=s;
	low[s]=0;
	while(h!=t)
	{
		h=(h+1)%(v+1);
		x=q[h];
		f[x]=0;
		for(k=adj[x];k!=-1;k=edge[k].next)
		{
			i=edge[k].v;
			j=edge[k].w;
			if(j+low[x]<low[i])
			{
				low[i]=low[x]+j;
				if(!f[i])
				{
					f[i]=1;
					t=(t+1)%(v+1);
					q[t]=i;
				}
			}
		}
	}
	return low[n*n+1];
}
int main()
{
	scanf("%d",&t);
	while(t--)
	{
		memset(adj,-1,sizeof(adj));
		int i,j;
		e=0;
		scanf("%d",&n);
		for(i=0;i<n;i++)
			for(j=0;j<n;j++)
				scanf("%d",&a[i][j]);
		n--;
		for(i=0;i<n;i++)
		{
			insert(0,i*n+1,a[i][0]);
			insert(0,(n-1)*n+i+1,a[n][i]);//s平面
			insert(i+1,n*n+1,a[0][i]);
			insert(i*n+n,n*n+1,a[i][n]);//t平面
			for(j=0;j<n;j++)
			{
				if(j+1<n)
				{
					insert(i*n+j+1,i*n+j+2,a[i][j+1]);
					insert(i*n+j+2,i*n+j+1,a[i][j+1]);//相邻平面
				}
				if(i+1<n)
				{
					insert(i*n+j+1,(i+1)*n+j+1,a[i+1][j]);
					insert((i+1)*n+j+1,i*n+j+1,a[i+1][j]);//相邻平面
				}
			}
		}
		printf("%d\n",spfa(0));
	}
}

2011 ACM-ICPC Multi-University Training Contest (3) - Host by BIT 多校联合第三场解题报告 2011 BIT 标程 题解 立即下载

相关推荐

信息奥赛课课通(C++)p154-1近似排序

试题描述 读入一对正整数,将这两个数之间(包括这两个数本身)的所有数按下述特别规则排序后输出,该特别规则是按两数倒过来的值进行比较决定其大小,如30倒过来为3,29倒过来为92,则29大于30. 输入要求 1行,包含两个用空格隔开的自然数,这两个自然数给出了待排序数的范围,其中1≤第一个数≤第二个数≤999999999,两个数之差不超过100. 输出要求 输出排序后的数据,每行输出...

mengdicfm的博客 7285

HDU 3870 Catch the Theves(对偶图的最小割转最短路)

题目地址 题意:小偷从左上角出发,要到达右下角,问警察至少拦截多长的路一定可以抓到小偷。(给的数num[i][j]的意思是(i,j)这点到(i+1,j)和(i,j+1)的距离) 思路:看到这题就想到用最小割,当左上角和右下角不连通的时候就可以抓到小偷了,但是用Dinic去写的话,就会发现复杂度太高了,然后上网百度发现了是对偶图的最小割转最短路的转发,可以看这个去理解,然后就是模板题了(建图方法看

不要錯過才珍惜 456

QTableView实现表格加载百万条数据

本文介绍用QTableView实现加载100万条数据显示到表格。 1.创建工程 用Qt Creator创建Qt Widgets Application项目,基类选择QWidget,创建好了,如图: 2.添加QTableView控件 在widget.ui中添加QTableView控件,和QPushButton,采用栅格布局,如图: 3.添加函数 头文件 QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACE class Wid

丁爸的博客 8272

HDU - 3870 Catch the Theves(最小割+对偶图==最短路)

题目大意:给出一张图,这张图的每条边都有相应的容量,现在问(1,1)到(N,M)的最小割是多少解题思路:转成对偶图,就可以用最短路了#include <cstdio> #include <cstring> #include <algorithm> #include <queue>using namespace std; const int MAXNODE = 160010; const int MA

静静地码 635

STM32F103C8T6键盘DIY全攻略:从电路设计到固件烧录(附避坑指南)

本文详细介绍了基于STM32F103C8T6微控制器的DIY键盘制作全流程,涵盖硬件电路设计、按键矩阵实现、USB HID通信及固件烧录等关键步骤。特别针对常见问题提供避坑指南,帮助开发者高效完成从电路设计到功能实现的完整过程,打造个性化瀚文键盘。

soda5的博客 770

解决UE5像素流三大痛点:鼠标锁定/双光标/自动播放(附app.js魔改指南)

本文针对UE5像素流服务在实际应用中常见的鼠标锁定、双光标和自动播放三大交互痛点,提供了深入的技术分析和解决方案。通过详细解析app.js源码,指导开发者如何修改控制方案、修复光标显示以及实现静音自动播放,旨在提升Pixel Streaming应用的用户体验与专业度。

weixin_28025327的博客 384

HDU 3870 Catch the Theves 最短路求最小割

题意:给你N*N的矩阵给你每条边的权值,只能向下和向右走,val[i][j]表示在(i,j)这个点向右向下的走的边权为val[i][j]。这是小偷们会从(1,1)渗透到(N,N),问你警察如何用最少的代价去阻止他们。 想法:我看第一眼最大流最小割,敲了交,超时,应为400*400*2条边。 正确建图: 此图从左往右看,因为是侧面建边的,当要截断一个方向(题目原图:自左上到右下)上

猫ER 797

C#工业通信完整项目实战:从协议解析到数据库存储,打造工业级全链路数据闭环(完整可复用源码)

工业自动化的核心诉求是「数据闭环」:从工业设备采集真实生产数据 → 解析校验获得有效数据 → 持久化存储到数据库形成生产台账 → 数据分析/报表展示/异常预警,形成采集→解析→处理→存储→应用的全链路数据流转,这也是工业上位机开发的终极落地形态,区别于单纯的「数据采集」demo。本次实战是一套工业级完整投产级项目,基于C# WinForm + .NET Framework 4.8(工业标配)✅双通信链路完美适配:同时封装TCP网口 + 串口(RS232/485)

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1038

HDU3870 Catch the Theves(平面图最小割转最短路)

题目大概说给一个n×n的方格,边有权值,问从求(1,1)到(n,n)的最小割。 点达到了160000个,直接最大流不好。这题的图是平面图,求最小割可以转化成求其对偶图的最短路,来更高效地求解: 首先源点汇点间新加一条边,然后构造其对偶图: 面作为对偶图的点;而源点到汇点之间新加的边划分出来的两个面分别作为对偶图的源点和汇点 如果两个面之间有边则两个面在对偶图对应的点连边,权值...

dengliugong3918的博客 186

YOLOv11改进 - C3k2融合 | C3k2融合融合WDBB宽度多样分支模块(Width Diverse Branch Block)通过多尺度分支增强特征表征能力

本文着眼于灰度图像目标检测所面临的挑战,提出了增强型目标检测网络 YOLO - MIF,该网络整合了多种多信息融合策略以对 YOLOv8 网络进行改进。文章开篇介绍了一种可创建伪多通道灰度图像的技术,此技术能增加网络的通道信息,同时缓解潜在的图像噪声与虚焦模糊问题。随后运用网络结构重新参数化技术,在不增加推断时间的情况下提升网络的检测性能。此外,引入了一种新颖的解耦式检测头,增强了模型处理灰度图像时的表现能力。

魔改工程师的博客 771

32、生物信息学中的符号、缩写及相关概念解析

本文详细解析了生物信息学中常用的符号、缩写及相关概念,涵盖概率理论、函数表示、模型结构、图与集合、维度参数、神经网络、隐藏马尔可夫模型、双向架构、语法系统、系统发育树、微阵列分析以及核方法与支持向量机等多个领域。通过表格和mermaid流程图的形式,系统梳理了各类符号的定义与应用场景,并介绍了常见缩写的全称与意义。文章旨在帮助研究人员准确理解生物信息学中的基础术语,提升对基因表达分析、序列建模、机器学习等技术的理解与应用能力。

rrr55的博客 146

【HDU3870 Catch the Theves】 最小割与最短路模型进行转换

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3870 题目大意:O(-1). 解题思路:开始直接构图,套Dinic()模板,悲剧的TLE。再认真看看题,n为400,也就是有400*400个点,边大概是节点的4倍大小,明显最大流会TLE,对偶图构图很蛋疼。 对于点数边数很大的求最小割来说,可以构造它...

baidui8622的博客 217

如何用python自己复现worldquant brain中的回测结果

本文介绍了在Python中复现WorldQuant Brain平台上alpha 101因子1和4的回测框架构建要点。重点分析了Brain平台的策略设置:使用TOP 3000高流动性股票(可用中证1000/2000替代);delay=1表示t日信号在t+1日开盘调仓;详细解释了market/sector/industry/subindustry四级中性化方法;说明了decay参数控制持仓权重线性衰减;以及TRUNCATION参数限制单股仓位风险。文章还探讨了不同调仓时点的实现差异,为自主构建量化回测系统提供了

夏之微风的博客 740

平面图s-t最小割 HDU 3870 Catch the Theves

Catch the Theves Time Limit: 5000/2000 MS (Java/Others)    Memory Limit: 65768/32768 K (Java/Others) Total Submission(s): 1372    Accepted Submission(s): 423 Problem Description   A group o

We Can 673

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

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

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

【HDU - 3870】Catch the Theves(平面图转对偶图最短路,网络流最小割)

题干: A group of thieves is approaching a museum in the country of zjsxzy,now they are in city A,and the museum is in city B,where keeps many broken legs of zjsxzy.Luckily,GW learned the conspiracy whe...

xuanweiace的博客 641

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

HDU 3870 Catch the Theves

http://acm.hdu.edu.cn/showproblem.php?pid=3870最小割转最短路#include #include using namespace std; #include #define N 160001 #define M 1500001 #def

ME4546的专栏 1514

HDU3870 Catch the Theves

http://acm.hdu.edu.cn/showproblem.php?pid=3870 平面图转对偶图板题,方法见https://wenku.baidu.com/view/8f1fde586edb6f1aff001f7d.html 平面图的最小割等于对偶图的最短路 #include<bits/stdc++.h> using namespace std; const int maxl=410; const int inf=2e9+10; int n,m,s,t,tot,ans;

binarycopycode 235

HDU 3870 Catch the Theves 【平面图最小割转最短路问题】

传送门 // 题意: 就是一个n*n的城市群, 小偷要从(1, 1)到(n, n), 每条路上有花费, 要选择权值和最小的一些边, 使得删去这些边后, (1, 1) 和 (n, n) 这两个点分开了, 也就是求最小割是多少. // 那么很容易的看出求最小割, 也就是求最大流, 但是一看数据范围就知道最大流肯定是过不了的, 所以我就不会啦~~~然后一搜题解才知道是什么平面最小割转最短路问题, 具体细

Anxdada -- 我等风来也等你 609

【HDU】3870 Catch the Theves 对偶图全局最小割 最短路

Catch the Theves Time Limit: 5000/2000 MS (Java/Others)    Memory Limit: 65768/32768 K (Java/Others) Total Submission(s): 1421    Accepted Submission(s): 431 Problem Description A group of

poursoul 929

hdu 3870 Catch the Theves 平面图转对偶图

题意:求一个平面图的最小割。 如果直接求最小割的话会超时,原图很特殊,是一个平面图,平面图的任意一个割对应对偶图的一条路径,所以即求对偶图的最短路径。 建图: 将S-T连线,将最外面的一个大面(无限大)一分为二了,一个为S*,一个为T*,原图的每个面转化为新图的一个点,对于原图中的每条边,将这条边的两面对应的点连接,再去掉S*与T*的连线。然后求S*到T*的最短路即可。 #include

KIDGIN7439的专栏 569

hdu 3870 Catch the Theves(对偶图,最短路,最小割)

Catch the Theves Time Limit: 5000/2000 MS (Java/Others)    Memory Limit: 65768/32768 K (Java/Others) Total Submission(s): 1653    Accepted Submission(s): 521 Problem Description A group of

TUT我好菜啊 792

HDU 3870Catch the Theves

题目:http://acm.hdu.edu.cn/showproblem.php?pid=3870 题意:平面图求最小割,转化成求最短路#include #include #include #include #include #include using namespace std; const int N=410*410; const int M=410*410*4+10; const in

wen_xp的专栏 460

hdu 3870 Catch the Theves 最小割-》求最短路

题意: 给你一个n*n的矩阵,然后(0,0)为源点,(n - 1,n - 1)为汇点。点(i,j)可以到达(i + 1,j) (i,j + 1) 花费为a[i][j]。求从(0,0)到(n - 1,n - 1)的最小割。 思路: 如果按照正常建图,Dinic求最大流会超时,这里要充分利用平面图的性质。然后将其转化为对偶图,然后将求最大流最小割转化为求该图的对偶图最短路问题。 详细请参考:...

weixin_30815427的博客 89

hdu 3870 Catch the Theves

http://acm.hdu.edu.cn/showproblem.php?pid=3870 最大流 转换成 最小割 最小割 转换成 最短路 代码: #include<iostream> #include<cstring> #include<cstdio> #include<string> #include<set&...

weixin_30649641的博客 122
上一篇: 彻底的失败,严重的打击。。。
下一篇: 网络流题目集锦
power721
博客等级 码龄19年 176粉丝 135原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值