bzoj3144: [Hnoi2013]切糕

机器人的“大脑”进化论:从专用控制器到高性能SoC的异构计算时代 摘要:随着AI与机器人技术融合,高性能芯片成为机器人智能化的关键。本文分析了机器人对芯片的核心需求,包括多模态数据处理、实时控制和智能决策能力。系统级芯片(SoC)因集成CPU、GPU/NPU等模块而成为主流选择。市场呈现分层格局:中低端设备(如扫地机器人)采用"MCU+轻量SoC"方案,满足基础功能;高端机器人则依赖"高性能SoC+独立GPU"处理复杂任务。除主控芯片外,完整的机器人系统还需传感器接口、驱动、通信等配套芯片。未来,芯片技术的进步将持续推动机器人智能化 阅读详情

传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=3144

第一道想出来的hnoi题,还难得地一遍A...

思路:老方法,先只考虑一个限制条件,即每个竖轴选一个点,求最小和;

最小,就考虑最小割。

这个还是比较好想的,每根竖轴按从上到下的顺序,连出从S->T一条路径,把点权附到边上


最小割就相当于每条链选一条边切断,求和最小的方案

就等价于每根竖轴选一个点的最小和。


现在就要考虑限制条件了

对于一根竖轴,我们选了z,那么相邻的竖轴就必须选[z-d,z+d]

那么对应网络流的模型,我们要怎样修改原图才能使之满足条件?

就是该条路径选择割掉z这条边,那么"相邻的"路径就只能割[z-d,z+d]

这里还是卡了一下的

我们可以用一些inf的边来"屏蔽"那些不能割的边

其实只要从z向"相邻的"路径的z-d号点连inf的边即可

画图可得,这样做之后,如果删了这条边,我们还可以通过这些桥梁,从相邻的路径的一段[z-d,z+d]绕过

从而实现必须割[z-d,z+d]的目的

如果删去了z,这时我们再删p边,就还存在灰线所示的流,只有删去z-d到z+d的边才可以阻断它


一些注意事项:建图时为了方便,建出第0层的点,从S向它连inf的边,最后一层向T连边

读入有坑!先是PQR,读点权时又是RPQ....

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
const int maxn=45*45*45+10,maxm=300010,inf=1e9+7;
const int dx[]={1,0,-1,0,0};
const int dy[]={0,-1,0,1,0};
using namespace std;
int P,Q,R,D,pre[maxm],now[maxn],son[maxm],val[maxm],tot=1,S,T,v[45][45][45];
int dis[maxn],q[maxm+10],head,tail,ans;
int enc(int a,int b,int c){return a*P*Q+b*Q+c;}
void ins(int a,int b,int c){pre[++tot]=now[a],now[a]=tot,son[tot]=b,val[tot]=c;}
void add(int a,int b,int c){ins(a,b,c),ins(b,a,0);}
void init(){
	scanf("%d%d%d%d",&P,&Q,&R,&D),S=maxn-2,T=maxn-1;
	for (int i=1;i<=R;i++) for (int j=1;j<=P;j++) for (int k=1;k<=Q;k++) scanf("%d",&v[i][j][k]);
	for (int j=1;j<=P;j++) for (int k=1;k<=Q;k++) add(S,enc(0,j,k),inf);
	for (int i=1;i<=R;i++) for (int j=1;j<=P;j++) for (int k=1;k<=Q;k++) add(enc(i-1,j,k),enc(i,j,k),v[i][j][k]);
	for (int j=1;j<=P;j++) for (int k=1;k<=Q;k++) add(enc(R,j,k),T,inf);
	for (int i=D;i<=R;i++) for (int j=1;j<=P;j++) for (int k=1;k<=Q;k++){
		for (int t=0;t<=4;t++){
			int nx=j+dx[t],ny=k+dy[t];
			if (nx<1||nx>P||ny<1||ny>Q) continue;
			add(enc(i,j,k),enc(i-D,nx,ny),inf);
		}
	}
}

bool bfs(){
	memset(dis,-1,sizeof(dis));
	q[tail=1]=S,dis[S]=0,head=0;
	while (head!=tail){
		if (++head>maxm) head=1;
		int x=q[head];
		for (int y=now[x];y;y=pre[y])
			if (dis[son[y]]==-1&&val[y]){
				if (++tail>maxm) tail=1;
				dis[son[y]]=dis[x]+1,q[tail]=son[y];
			}
	}
	return dis[T]>0;
}

int find(int x,int low){
	if (x==T) return low;
	int y,res=0;
	for (y=now[x];y;y=pre[y]){
		if (dis[son[y]]!=dis[x]+1||!val[y]) continue;
		int tmp=find(son[y],min(low,val[y]));
		res+=tmp,low-=tmp,val[y]-=tmp,val[y^1]+=tmp;
		if (!low) break;
	}
	if (!y) dis[x]=-1;
	return res;
}
void work(){while (bfs()) ans+=find(S,inf);printf("%d\n",ans);}

int main(){
	init(),work();
	return 0;
}


华为OD机试双机位C卷-几何平均值最大子数组(Py/Java/C/C++/Js/Go) 华为OD机试(机考)2026双机位C卷 【几何平均值最大子数组】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【几何平均值最大子数组】。 阅读详情

相关推荐

实战测评:4大搜索API(You.com/Tavily/Exa/Perplexity)谁更适合你的AI项目?附Python调用代码

本文实战测评了You.com、Tavily、Exa和Perplexity四大搜索API在AI项目中的集成应用,详细对比了它们的技术特性和Python调用方法。针对LLM实时数据需求,You.com的优化设计表现突出,支持32k大上下文窗口和快速响应。文章提供了完整的代码示例和场景化选型建议,帮助开发者高效集成搜索API到AI项目中。

weixin_42569329的博客 478

BZOJ3144: [Hnoi2013]切糕

BZOJ3144: [Hnoi2013]切糕 Description Input 第一行是三个正整数P,Q,R,表示切糕的长P、 宽Q、高R。 第二行有一个非负整数D,表示光滑性要求。 接下来是R个P行Q列的矩阵,第z个 矩阵的第x行第y列是v(x,y,z) (1≤x≤P, 1≤y≤Q, 1≤z≤R)。100%的数据满足P,Q,R≤40,0≤D≤R,且给出的所有的不和谐...

weixin_30653097的博客 158

2026 AI编程环境安装指南:从下载、部署到流式验证

AI编程环境已不再是传统软件安装,而是融合硬件兼容性、模型运行时与IDE插件协同的系统工程。其核心原理在于:本地GPU驱动需匹配量化运行时(如Ollama v0.3+对CUDA 12.1+的强制要求),协议层依赖gRPC流式响应,生态层则要求插件签名与模型源可信校验。这一技术组合显著提升AI代码生成的实时性与生产就绪度,支撑微服务开发、CI/CD智能补全、本地LLM推理等关键场景。本文聚焦AI编程软件下载与安装过程中的可复现部署实践,覆盖macOS/WSL2双平台、NVMe模型加速、离线校验及原子化功能验证

weixin_30480075的博客 581

[HNOI2013]切糕

[HNOI2013]切糕

Ironk的博客 437

保姆级教程:用Python spatialdata框架搞定10x Xenium空间转录组数据(从下机到高级分析)

本教程详细介绍了如何使用Python spatialdata框架处理10x Xenium空间转录组数据,从数据获取到高级分析的全流程。涵盖环境配置、数据读取、质量控制、降维聚类、细胞注释及空间共定位分析等关键步骤,特别适合生物信息学研究者快速掌握Xenium数据分析技术。

weixin_30300225的博客 480

TI毫米波雷达人体生命体征(呼吸、心跳)信号提取算法(IWR6843ISK+DCA1000EVM)

本篇内容介绍的算法主要为传统的提取算法,但可实现在1m内呈现良好的检测效果,能够提取出非常可观的呼吸和心跳波形,但在超出1m的距离后便不适用这个算法了。远距离检测呼吸和心跳始终是这个领域一个很大的挑战。要实现远距离检测可在提取相位信号、分离呼吸和心跳信号上进行改进处理,例如线性解调提取相位、改进的VMD分离呼吸和心跳算法。

m0_61934621的博客 3万+

【题解】[HNOI2013] 切糕

sol: 比较难的网络流题目。 我们考虑,对于一个 (i,j) 的块拆分成 r 个串联,每个点向前一个连边,容量为 a[r][i][j] 。 那么选择一个点相当于割掉它面前的那条边。 以 v2 为例。假设选了 v2 点,那么 {p1,p2,p3} 是合法的。 为了保证割边在 {p1,p2,p3} 面前的边中,我们添加一条边: 当然 p2 同理也这样添。 最后网络流跑最小割即可。 #include<bits/stdc++.h> #define INF 0x3f3f3f3f using na.

cqbzlydd的博客 642

10.嵌入式控制器EC实战 GPIO开发流程

文章目录1.General Control Register (GCR),通用控制寄存器,地址0x1602.GPDRA—GPDRJ端口数据寄存器组(共10组)3.Port Control n Registers (GPCRn, n = A0-I7),端口控制寄存器4.GPIO端口编程指导编程步骤端口初始化使用InitGPIOReg数据结构初始化所有端口默认工作模式读取输入引脚的值(STATE_ACin()): IT8502中各个引脚的描述见下表所示: 在嵌入式控制器EC的IT8502主控芯片中,通过芯片的

qq_30135687的博客 2283

【BZOJ3144】[HNOI2013]切糕

【BZOJ3144】[HNOI2013]切糕 题面 题目描述 经过千辛万苦小 A 得到了一块切糕,切糕的形状是长方体,小 A 打算拦腰将切糕切成两半分给小 B。出于美观考虑,小 A 希望切面能尽量光滑且和谐。于是她找到你,希望你能帮她找出最好的切割方案。 出于简便考虑,我们将切糕视作一个长 P、宽 Q、高 R 的长方体点阵。我们将位于第 z层中第 x 行、第 y 列上(1≤x≤P, 1≤...

163

倍福--手动加入第三方伺服的配置

客户在没有硬件情况下,希望手动配置硬件,添加第三方驱动器,本文介绍其操作流程 目 录 软硬件版本 3 1.1. 倍福Beckhoff 3 1.1.1. 控制器硬件 3 1.1.2. 控制软件 3 操作步骤 3 2.1. 添加电机XML文件 3 2.2. 创建EtherCAT 3 2.3. 添加新建项 3 2.4. 选择型号 4 2.5. 关联NC轴 5 软硬件版本 1.1. 倍福Beckhoff 1.1.1. 控制器硬件 TwinCAT控制制器,PC或者EPC,包括: 嵌入式控制器:CX5020-

weixin_41883890的博客 5325

【数据集】1980-2020年(5年)土地利用分类数据-中国科学院

简介1980-2020年每五年土地利用数据-中国科学院

WW、forever的博客 3931

BZOJ 3144: [Hnoi2013]切糕

3144: [Hnoi2013]切糕 Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 915  Solved: 511 [Submit][Status][Discuss] Description Input 第一行是三个正整数P,Q,R,表示切糕的长P、 宽Q、高R。第二行有一个非负整数D,表示光滑性要求。接下来是R个P

蘑菇--走在通往梦想的道路上。 417

AD(Altium Designer)器件封装——立创商城导出原理图和PCB完成器件封装操作指南

官网:www.SZLCSC.COM以芯片为例器件类——>芯片类——>对应芯片确定芯片——>数据手册1:原理图2:PCB3:打开操作流程选中原理图——>文件——>导出——>AD1: ✔2:导出AD文件操作流程选中PCB图——>文件——>导出——>AD1: ✔2:导出AD文件1:PCB图2:原理图操作流程文件——>打开操作流程选中文件——>打开操作流程项目文件——>添加新的...到工程——>Schematic Library新原理图库操作流程项目文件——>添加新的...到工程——>PCB Library新的PC

XU157303764的博客 5436

BZOJ 3144: [Hnoi2013]切糕 题解

3144: [Hnoi2013]切糕Time Limit: 10 Sec Memory Limit: 128 MB Submit: 1936 Solved: 1049DescriptionInput第一行是三个正整数P,Q,R,表示切糕的长P、 宽Q、高R。第二行有一个非负整数D,表示光滑性要求。接下来是R个P行Q列的矩阵,第z个 矩阵的第x行第y列是v(x,y,z) (1≤x≤P, 1≤y≤

Monica 640

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

bzoj 3144: [Hnoi2013]切糕 最小割

3144: [Hnoi2013]切糕 Time Limit:10 SecMemory Limit:128 MBSubmit:681Solved:375[Submit][Status] Description Input 第一行是三个正整数P,Q,R,表示切糕的长P、 宽Q、高R。第二行有一个非负整数D,表示光滑性要求。接下来是R个P行Q列的...

alex151194310的博客 171

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

[BZOJ3144][最小割]HNOI2013:切糕

BZOJ3144 要求每个竖着的列选一条边出来,而且选择的权值和最小,那就直接上最小割 具体的,我们把每一列的所有边依次连接成为一条s到t的路径,做最小割即可 考虑怎么满足d的限制,也就是选了一条边必须选与这列相邻的列的某个连续范围的边 那么就从这条边的两个端点分别连对应的可选区间的两端,这样就限制了最小割必须割选定范围内的边,否则就不能割开 Code: #include<bits/stdc...

romiqi 161

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

BZOJ 3144: [Hnoi2013]切糕 最小割

title BZOJ 3144 LUOGU 3227 Description Input 第一行是三个正整数P,Q,R,表示切糕的长P、 宽Q、高R。第二行有一个非负整数D,表示光滑性要求。接下来是R个P行Q列的矩阵,第z个 矩阵的第x行第y列是v(x,y,z) (1≤x≤P, 1≤y≤Q, 1≤z≤R)。 100%的数据满足P,Q,R≤40,0≤D≤R,且给出的所有的不和谐值不超过...

dilu0653的博客 168

BZOJ 3144: [Hnoi2013]切糕 [最小割]

3144: [Hnoi2013]切糕 题意:略 省选之前口胡过~ 每个点拆成r个点 题目要求 \[ \mid f(x,y) - f(x',y') \mid \le D \] 我们可以对每个点都考虑上界,这样其实也把下界考虑了 \((x,y,k)\)向\((x,y,k+1)\)连\(val(x,y,k)\)的边,向\((x,y,k-D)\)连inf #include <iostream&gt...

weixin_30533797的博客 73

[最小割] BZOJ 3144: [Hnoi2013]切糕

SolutionSolution建立超级源汇,超级源连到切糕的顶部,切糕的底部连到超级汇,流量无穷大。 对于(x,y,∗)(x,y,*)从上到下连边,这里的边就相当于原来要切的点,标上流量。 如果不考虑f(x,y)−f(x′,y′)≤Df(x,y)-f(x',y')\le D的话,最小割就是答案。 那么可以这么连。 如果选取的点不在区间[z−D,z+D][z-D,z+D]里就会存在无穷大

Vectorxj的博客 409
上一篇: bzoj3140: [Hnoi2013]消毒
下一篇: bzoj2733: [HNOI2012]永无乡
thy_asdf
博客等级 码龄12年 16粉丝 186原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值