【最小费用最大流】JZOJ_4802 探险计划

ESP32上WASM为何不能直接调用硬件?沙箱隔离与宿主桥接原理 WebAssembly(WASM)是一种基于栈的可移植字节码格式,其核心设计原则是内存安全与沙箱隔离——所有执行必须受限于线性内存边界,禁止直接访问物理地址。这一机制在嵌入式系统如ESP32中尤为关键:硬件寄存器(如GPIO、SPI)位于固定物理地址(如0x3FF44000),而WASM线性内存由引擎动态分配且与MMU映射隔离,导致`i32.load`非法寻址必然触发trap。因此,WASM调用硬件并非功能缺失,而是架构强制约束;真实可行路径是构建安全、低开销的宿主API桥接层,承担参数校验、命令调度与错误 阅读详情

题意

给出一个梯形,每个点上有一个危险值,从底部出发,每次能走到左上或者右上的点。

任务一:找出mmm条完全不相交的至底至顶的路径
任务二:找出mmm条仅在数字处相交的路径(可以重复经过点)

对于两个任务,求出最小的危险值总和。

思路

最小费用最大流。

将每个点拆点,对于任务一,给一个限制,任务二则无限制。

代码

#include<queue>
#include<cstdio>
#include<cstring>
#include<algorithm>

int n, m, tot, S, E, SS, sum, ans;
int a[81][161], ver[58001], next[58001], head[20004], flow[58001], cost[58001], d[20004], v[20004], pre[20004], p[81][161];

inline void add(int u, int v, int f, int c) {
	ver[++tot] = v;
	next[tot] = head[u];
	flow[tot] = f;
	cost[tot] = c;
	head[u] = tot;
	ver[++tot] = u;
	next[tot] = head[v];
	flow[tot] = 0;
	cost[tot] = -c;
	head[v] = tot;
}

inline int spfa() {
	std::queue<int> q;
	memset(d, 127 / 3, sizeof(d));
	memset(v, 0, sizeof(v));
	memset(pre, 0, sizeof(pre));
	d[SS] = 0;
	v[SS] = 1;
	q.push(SS);
	while (q.size()) {
		int u = q.front();
		q.pop();
		v[u] = 0;
		for (register int i = head[u]; i; i = next[i]) {
			if (!flow[i]) continue;
			if (d[ver[i]] > d[u] + cost[i]) {
				d[ver[i]] = d[u] + cost[i];
				pre[ver[i]] = i;
				if (!v[ver[i]]) {
					q.push(ver[i]);
					v[ver[i]] = 1;
				}
			}
		}
	}
	return d[E] < 707406378;
}

inline void addflow() {
    int i = E, mn = 2147483647;
    while (pre[i]) {
        mn = std::min(mn, flow[pre[i]]);
        i = ver[pre[i] ^ 1];
    }
    ans += mn * d[E];
	i = E;
    while (pre[i]) {
        flow[pre[i]] -= mn;
        flow[pre[i] ^ 1] += mn;
        i = ver[pre[i] ^ 1];
    }
}

int main() {
	scanf("%d %d", &n, &m);
	int tj = 0, sum = (m + m + n - 1) * n / 2;
	tot = 1;
	for (register int i = 1; i <= n; i++)
		for (register int j = 1; j < m + i; j++) {
			scanf("%d", &a[i][j]);
			p[i][j] = ++tj;
			add(p[i][j], p[i][j] + sum, 1, 0);
		}
	S = 0;
	E = 2 * sum + 1;
	SS = 2 * sum + 2;
	add(SS, S, m, 0);
	for (register int i = 1; i < m + n; i++)
		add(S, p[n][i], m, a[n][i]);
	for (register int i = 1; i <= m; i++)
		add(p[1][i] + sum, E, m, 0);
	for (register int i = 2; i <= n; i++) {
		for (register int j = 1; j < m + i; j++) {
			if (j < m + i - 1) add(p[i][j] + sum, p[i - 1][j], 1, a[i - 1][j]);
			if (j > 1) add(p[i][j] + sum, p[i - 1][j - 1], 1, a[i - 1][j - 1]);
		}
	}
	while (spfa())
		addflow();
	printf("%d\n", ans);
	tot = 1;
	ans = 0;
	memset(head, 0, sizeof(head));
	add(SS, S, m, 0);
	for (register int i = 1; i < m + n; i++)
		add(S, p[n][i], m, a[n][i]);
	for (register int i = 1; i <= m; i++)
		add(p[1][i] + sum, E, m, 0);
	for (register int i = 1; i <= n; i++) {
		for (register int j = 1; j < m + i; j++) {
			add(p[i][j], p[i][j] + sum, m, 0);
			if (i > 1 && j < m + i - 1) add(p[i][j] + sum, p[i - 1][j], 1, a[i - 1][j]);
			if (i > 1 && j > 1) add(p[i][j] + sum, p[i - 1][j - 1], 1, a[i - 1][j - 1]);
		}
	}
	while (spfa())
		addflow();
	printf("%d", ans);	
}
POJ2516__最小费用最大流 poj2516代码最小费用最大流 立即下载

相关推荐

在 Windows 上安装 OpenCV – C++ / Python

而且,安装并不是一件容易的事。这些安装程序仅适用于安装 OpenCV for C++。如果您想安装适用于 Python 的 OpenCV,您将在博客后面找到相关信息。在这篇博文中,我们将在 Windows 上安装适用于 C++ 和 Python 的 OpenCV。C++ 安装是在自定义安装 exe 文件的帮助下完成的。而Python的安装是通过Anaconda完成的。从源代码安装 OpenCV 需要花费大量时间。根据您的硬件和安装配置,该过程可能需要 5 分钟到 2 小时不等。

Demondai999的博客 2091

POJ2516-Minimum Cost

全解题报告索引目录 -> 【北大ACM – POJ试题分类】 转载请注明出处:http://exp-blog.com ------------------------------------------------------------------------- 大致题意: 有N个供应商,M个店主,K种物品。每个供应商对每种物品的的供应量已知,每个店主对每...

ζёСяêτ - 小優YoU 7011

西门子 标准程序解读---> 机器手抓取和涂胶控制程序

摘要 该程序实现机械手在OP70/OP90工位的自动化控制,核心功能包括: 流程控制:分段(Seg1-Seg11)管理抓件、涂胶、放件等动作,结合DB1050/DB1250数据块监控工位状态及变位机位置反馈。 安全机制:配置干涉区(FC124)、实时检测安全光/急停信号,防止碰撞;服务程序(FB191)支持维修位触发与安全隔离。 参数配置:通过DB块关联机器人速度、节拍(FB27)、车型编码(如空过=2)及手自动模式(DB70.DBX21.2)。 应用场景:适用于汽车焊接/装配线

工控智联驿站 1239

POJ 2516 Minimum Cost

n个店主,m个经销商,k个商品。不同经销商可以提供不同数量的商品,不同店主需求不同数量的商品,不同的商品从不同的店主手中发货给不同的店主需要花费不同的价钱。 题目输入格式是这样的:         第一行n m k         接下来是一个n*k的矩阵,表示不同店主需求不同数量的商品;         然后是一个m*k的矩阵,表示不同经销商可以提供不同数量的商品;

仰望圣光的plusplus7 701

CMakeTestCCompiler.cmake错误解决

CMakeTestCCompiler.cmake错误解决欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 最近编译项目的时候,遇到一个cmake的错误,具体错误信息如下: /path-to-pr

昨夜星辰的博客 2万+

UNet 改进(22):结合Transformer结构

保留了UNet的经典编码器-解码器结构在瓶颈层使用Transformer替代传统的卷积层采用跳跃连接保持空间细节信息使用双卷积块(DoubleConv)作为基础构建模块。

2401_82355416的博客 774

POJ 2516(最小费用最大流, 多次建图)

题目链接:http://poj.org/problem?id=2516 说一下输入: 第一行是三个整数, n,m,k,分别代表n个商户,m个仓库,k种物品。 接着是n 行,每行k个整数, 意思是 在这 n 行中 , 第 i 行 第 j 列 就表示 第 i 个商户对 第 j 种物品的需求量。 然后是m 行,在这m 行中, 第 i行第 j 列表示 第 j 种物品 放置在 第 i 个仓库的数量。...

Error Man 的博客 447

多物理场光学仿真软件:COMSOL_(10).激光器与谐振腔仿真

定义Nd:YAG晶体的材料属性% 折射率% 吸收系数% 发射截面% 定义光泵浦源% 泵浦光波长% 泵浦光强度% 泵浦光方向% 定义全反射镜% 选择边界% 完美电导体边界条件% 定义部分反射镜% 选择边界% 反射率边界条件% 反射率通过 COMSOL 对激光器和光学谐振腔进行仿真,可以全面评估激光器的性能,包括输出功率、效率、稳定性和模式选择等。这些仿真结果为激光器的设计和优化提供了重要的参考依据。

kkchenjj的博客 1649

POJ 2516(最小费用最大流)

一开始居然忘添反向边…… Program P2516; const maxn=100; maxm=100; maxk=100; var n,m,k,i,j,l,maxflow:longint; need,prod:array[1..maxn,1..maxk] of longint; needk,prodk:array[1..maxk] of longin...

爱.NET 195

LPDDR5 学习笔记01:功能概述

LPDDR5/LPDDR5X SDRAM设备采用8/16DQ通道架构,支持2Gb-32Gb容量。通过CK命令时钟和更快的WCK数据时钟协同工作,7个CA引脚传输控制信息,支持2:1或4:1的WCK:CK比例。设备提供BG/8B/16B三种存储模式选择,分别支持不同数据速率(最高8.533Gbps)和突发长度。采用0.5V VDDQ电源电压,实现高速双倍数据速率传输,并通过差分WCK时钟完成数据采样。读写采用突发访问机制,需先激活命令再执行读写操作。新型LPDDR5X仅支持BG和16B模式,优化了高速性能。

一只豌豆象的博客 2203

汽车UDS诊断详解及Vector相关工具链使用说明——1.1 应用层协议整体介绍

本文我们先从整体的维度来介绍一下应用层协议,每个UDS服务都遵循本文中的协议。 一、SI(Service ID) SI是UDS指令的第一个字节,我们第一篇文章中提到的10等服务就是指这个服务的SI=0x10,它是服务的标识,每个服务的SI都是唯一的。 ...

weixin_42967006的博客 5475

poj 2516 Minimum Cost

对于每个物品进行一次费用li

huantwofat 551

项目模块提取生成jar包上传到nexus供其他项目使用

项目场景: 微服务项目当中的某一个模块其他项目进行复用,资源管理搭建的有私服 nexus。 问题描述: 如果把功能用到其他项目,代码重复量太大,不想些重复的代码。 原因分析: 如果把这个模块单独提取出来进行复用,至于操作数据库的功能,使用远程调用进行数据库操作,这样就能解决相同模块重复编写的工作。量。 解决方案: 首先对模块代码进行封装提取,把一些用到的参数提取出来,以传参的形式来对参数进行传递。这个需要根据具体的情况进行代码提取,提取之后把这个模块的代码进行打包,打包可以借助开发工具进行打包(记得使用 d

lierjun 的专栏 451

[jzoj 4802] 探险计划 {拆点+最小费用最大流}

题目 Description 这一天,Hnsdfz信息组的众人决定上岳麓山玩.岳麓山上的可以探险的地方非常多,而信息组的Oier们給每一个地方都设定了一个危险值,代表探险这个景点需要承担的危险,而整个岳麓山可以抽象为由n行数字组成的数字梯形.而梯形顶端有m个数字,在每个数字处可以往左上或右上移动 ( (i,j) 可以到 (i-1,j) 或 (i-1,j-1), (i,j)表示输入文件中数字梯形的第...

Nowed 514

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

2019.06.01 【NOIP提高组】模拟 A 组 总结

题目 分数(30+0+0)=30分,第二题的最小费用最大流没有调出来。

Nowed 511

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

[luogu 4013] [网络流24题] 数字梯形问题 {最小费用最大流}

题目 https://www.luogu.org/problemnew/show/P4013 解题思路 代码

Nowed 315

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

2019.6.1 提高A组 T2 JZOJ 4802【GDOI2017模拟9.24】探险计划

费用流神题

Ajwallet 480

poj2516 Minimum Cost (最小费用最大流)

分析: 题目输入方式有点奇怪。 这题我马上想到的是拆点 开始做的时候直接拆了nk+mk个点,超级大图,疯狂debug 结果一发就TLE 心态大崩 正解是把k种商品独立,轮流对每个商品建图, 跑k次最小费用最大流,把每次跑出来的费用相加就行了 不需要拆点。 code: #include<iostream> #include<cstdio> #include<cstrin...

zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz 909

poj 2516 (费用流)

题意:有N个供应商,M个店主,K种物品。每个供应商对每种物品的的供应量已知,每个店主对每种物品的需求量的已知,从不同的供应商运送不同的货物到不同的店主手上需要不同的花费,又已知从供应商m送第k种货物的单位数量到店主n手上所需的单位花费。供应是否满足需求?如果满足,最小运费是多少? 思路:这题一读完就知道是费用流了,刚开始想着拆点,不过算了一下,把m个供应商拆成m*k个点,n个店主拆成n*k个点,

菜鸟起航的专栏 999

POJ2516 Minimum Cost (费用流)

题意: 摘自:https://blog.youkuaiyun.com/qq_30974369/article/details/76648579 一行是三个数字:N,M,K 分别表示有N个商店,M个供货商,K中货物 接下来是N行,每行K个整数 对于第i行第j列,表示的是第i个商店对于货物j的需求 再接着,M行,每行K个整数 对于第i行第j列,表示的是第i个供货商对于货物j的存货 接下来有K个N*M的矩形 第X个...

CY05627的博客 342

POJ 2516 最小费用流

题意 传送门 POJ 2516 题解 最直接的想法,将物品、商店/仓库组成二元组,跑最小费用流,TLE;观察图,只有标识了相同商品的点集才会有直接的连线,于是可以将不同商品的图拆开,缩减图的规模,分别求解最小费用流;对于同一类商品,因为任意商店与仓库相连,只要满足商店需求大于仓库库存,就一定能满足条件,反之输出 −1-1−1。 #include <cstdio> #include <cstring> #include <iostream> #include <alg

neweryyy的博客 221

POJ - 2516 (最小费用流)

题目链接 题意: N个销售店 标号为1 - N,M个供货店,1 - M, 然后如果其中一个店主订购商品,应该安排那个供应商向店主提供多少商品 以减少费用 从不同的供应地点向不同的店主运输不同种类的单件货物的成本可能不同 已知: ...

Harington的博客 370

POJ2516

新手操作,同样借助了上次大神的模板,接下来的事情就很容易了 #include #include #include #include #include using namespace std; const int MAXNODE = 5005; const int MAXEDGE = 500005; typedef int Type; const Type INF = 0x3f3f3f

pokemonn_getto_daze的博客 455

Minimum Cost POJ - 2516 费用流

传送门:POJ2516 题意:有n个客户,k种商品,m个仓库,每个仓库里都存有不等量的k种商品,现给出i种商品运送到客户j的单位花费,问满足所有客户需求的最小花费是多少,若不能满足需求则输出-1。 思路:典型最小费用流,并且能否满足需求是可以提前算出来的,只要k种物品中的每一种都总需求小于总供应(即供大于求)就能满足。然后是建图,我们无法一下求出k种物品的最小花费,但由于k种物品是互不相干的,

WA是一笔财富 339

POJ 2516 Minimum Cost(最小费用最大流)

题目链接:http://poj.org/problem?id=2516 Description Dearboy, a goods victualer, now comes to a big problem, and he needs your help. In his sale area there are N shopkeepers (marked from 1 to N) wh...

1703

POJ - 2516 Minimum Cost(最小花费最大流)

Dearboy, a goods victualer, now comes to a big problem, and he needs your help. In his sale area there are N shopkeepers (marked from 1 to N) which stocks goods from him.Dearboy has M supply places (m...

vocaloid01的博客 731
上一篇: 【主席树】luogu_3834 可持久化线段树 1(主席树)
下一篇: 【主席树】luogu_3919 可持久化数组(可持久化线段树/平衡树)
nymph181
博客等级 码龄9年 40粉丝 458原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值