POJ 2516 最小费用流构K次图

Aruba CX交换机 初始化配置 Aruba CX 交换机 6000系列 8000系列交换机配置 阅读详情
【题意】:有n个商店,m个供应商,k种商品,给出每个商店对每种商品的需求,每个供应商对于每种商品的库存,和对于每种商品,每个供应商运到每个商店的费用。
              问:能否满足每个商店的需求,如果能,输出最少的费用;否则输出-1。

【题解】:这是一场个人赛的题目,当时一开始没反应过来是最小费用流,到我意识到的时候已经没有时间敲代码了。
              其实这题就是好裸的最小费用流,只需要注意一点,对于每一种商品各自构一次图,跑最小费用流即可。至今不明白为什么k个图没联系,弄在一起跑费用流会超时。

              对于每个构图就是 s->供应商->商店->t,最后判断一下最大流是否等于各个商店的需求和即可。

算法一次敲对了,不过已经判断出错误就没继续输入了,坑爹啊

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

const int n_max=105;
const int m_max=10005;
const int inf=1<<30;
struct edge
{
	int u,v,cap,cost,pre;
	void add(int pu,int pv,int pcap,int pcost,int ppre)
	{
		u=pu;
		v=pv;
		cap=pcap;
		cost=pcost;
		pre=ppre;
	}
}e[m_max];
int ne;
int head[n_max];
int sup[n_max][n_max],need[n_max][n_max];
int min_cost,max_flow;

void init()
{
	ne=0;
	memset(head,-1,sizeof(head));
}

void addedge(int u,int v,int cap,int cost)
{
	e[ne].add(u,v,cap,cost,head[u]);
	head[u]=ne++;
	e[ne].add(v,u,0,-cost,head[v]);
	head[v]=ne++;
}

void min_cost_max_flow(int s,int t)
{
	min_cost=max_flow=0;
	while(true)
	{
		int p[n_max];
		memset(p,-1,sizeof(p));
		int d[n_max];
		int i;
		for(i=0;i<n_max;i++)
		{
			d[i]=inf;
		}
		d[s]=0;
		bool inq[n_max];
		memset(inq,0,sizeof(inq));
		inq[s]=true;
		queue<int> q;
		q.push(s);
		int u,v;
		while(!q.empty())
		{
			u=q.front();
			q.pop();
			inq[u]=false;
			for(i=head[u];i!=-1;i=e[i].pre)
			{
				v=e[i].v;
				if(e[i].cap&&d[v]>d[u]+e[i].cost)
				{
					d[v]=d[u]+e[i].cost;
					p[v]=i;
					if(!inq[v])
					{
						q.push(v);
						inq[v]=true;
					}
				}
			}
		}
		if(d[t]==inf)
		{
			break;
		}
		int nmin=inf;
		for(i=p[t];i!=-1;i=p[e[i].u])
		{
			nmin=min(nmin,e[i].cap);
		}
		for(i=p[t];i!=-1;i=p[e[i].u])
		{
			e[i].cap -= nmin;
			e[i^1].cap += nmin;
		}
		min_cost += d[t]*nmin;
		max_flow += nmin;
	}
}

int main()
{
	int n,m,k,s,t;
	while(~scanf("%d%d%d",&n,&m,&k))
	{
		if(n+m+k==0)
		{
			break;
		}
		int i,j,l;
		s=0;
		t=m+n+1;
		for(i=1;i<=n;i++)
		{
			for(j=1;j<=k;j++)
			{
				scanf("%d",&need[i][j]);
			}
		}
		for(i=1;i<=m;i++)
		{
			for(j=1;j<=k;j++)
			{
				scanf("%d",&sup[i][j]);
			}
		}
		bool bans=true;
		int sum_cost=0;
		int x;
		for(l=1;l<=k;l++)
		{
			init();
			for(i=1;i<=n;i++)
			{
				for(j=1;j<=m;j++)
				{
					scanf("%d",&x);
					addedge(j,m+i,inf,x);
				}
			}
			if(!bans)
			{
				continue;
			}
			for(i=1;i<=m;i++)
			{
				if(sup[i][l])
				{
			    	addedge(s,i,sup[i][l],0);
				}
			}
			int needall=0;
			for(i=1;i<=n;i++)
			{
				if(need[i][l])
				{
					needall+=need[i][l];
					addedge(m+i,t,need[i][l],0);
				}
			}
			min_cost_max_flow(s,t);
			if(max_flow==needall)
			{
				sum_cost+=min_cost;
			}
			else
			{
				bans=false;
			}
		}
		if(bans)
		{
			printf("%d\n",sum_cost);
		}
		else
		{
			printf("-1\n");
		}
	}
	return 0;
}



YOLO26模型应用过程中的报错处理及疑问解答,涉及环境搭建、模型训练、模块改进、论文写作 本文记录了YOLO26模型的这一系列过程中可能发生的问题,以及大家非常关心的问题,这里统一做了一个记录和解答。 阅读详情

相关推荐

Type-C快充移动电源芯片避坑指南:IP5356配置全流程(支持PD3.0)

本文详细解析了英集芯IP5356芯片在Type-C快充移动电源中的应用,提供了从芯片选型、原理图设计、PCB布局到PD协议调试的全流程实战指南。文章重点剖析了如何避免散热、EMI及协议握手等常见设计陷阱,并分享了量产前的关键测试验证方法,旨在帮助硬件开发者高效打造稳定可靠的快充产品。

weixin_29235525的博客 856

POJ 2516 KM+建图

POJ 2516 题意: n个店主,m个供货商(仓库),k种商品 给出n个店主的k种商品的需求,m个仓库存放k种商品的个数,和对于每种商品kik_iki​来说从mim_imi​运送到nin_ini​的运费 求最小花费, 如果商品不足则输出-1 思路: 分k次计算:每个商品分别求最小花费,然后加和,建立二分图后首先判断商品数量是否足够给店主.然后裸KM() 存数据+建图 shop[i][k...

_llc的博客 227

阿里云天池大数据长期赛:金融风控-贷款违约预测(含代码)

本次比赛让自己在大数据的处理流程上有了更明确的认知,从数据清洗、特征工程、数据建模,每一个过程都能学到很多经验和知识,值得去历练。

weixin_46685991的博客 1万+

POJ2516-Minimum Cost

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

ζёСяêτ - 小優YoU 7011

论文翻译:2024 High-Confidence Computing A survey on large language model (LLM) security and privacy: The

大型语言模型(LLMs),如ChatGPT和Bard,已经彻底改变了自然语言理解和生成。它们具有深度语言理解能力、类似人类的文本生成能力、上下文意识和强大的问题解决技能,使它们在各个领域(例如搜索引擎、客户支持、翻译)中变得不可或缺。同时,LLMs也在安全领域获得了关注,揭示了安全漏洞并展示了它们在安全相关任务中的潜力。本文探讨了LLMs与安全性和隐私的交集。具体来说,我们研究了LLMs如何积极影响安全性和隐私,与它们使用相关的潜在风险和威胁,以及LLMs内部的固有漏洞。

CSPhD-winston的博客 1722

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

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

zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz 909

华为OD机试 - 第k个排列 - 全排列递归(Python/JS/C/C++ 2025 C卷 100分)

给定参数n,从1到n会有n个整数:1,2,3,…,n,这n个数字共有n!按大小顺序升序列出所有排列的情况,并一一标记当n=3时,所有排列如下“123”,“132,“213”,“231”,“312”,“321”输入两行,第一行为n,第二行为k,给定n的范围是[1,9],给定k的范围是[1,n!排列为“12”和“21”,第2个是“21”。给定n和k,返回第k个排列。输出排在第k位置的数字。只有一个排列,直接返回。

学Java,找哪吒 989

POJ1018-Communication System

全解题报告索引目录 -> 【北大ACM – POJ试题分类】 转载请注明出处:http://exp-blog.com ------------------------------------------------------------------------- 这里提供两种解题思路:DP 和 枚举。 以下是DP的解题方式(2017新增): /* ...

ζёСяêτ - 小優YoU 3万+

OpenClaw 报错 npm install failed; cleaning up and retrying...:原生模块编译失败

本文针对OpenClaw项目在部署时出现的"npm install failed"报错问题进行分析,指出该问题源于Node.js原生模块编译链缺失。文章详细列举了常见触发原因,包括缺少gcc/make、Python版本不符、Node版本过新等,并提供了五种解决方案:安装完整编译环境、配置node-gyp Python、重新编译原生模块、切换Node版本以及单独重建失败模块。最后强调在国产服务器环境下部署AI工程时,补齐编译环境和使用稳定Node版本是解决问题的关键,该方案可复用解决

博客 1800

PCL SVD分解求变换矩阵【2026最新版】

该算例使用奇异矩阵分解来求变换矩阵,输入的是同名点坐标输出的是变换矩阵。博客长期更新,本文最近一次更新时间为:2026年5月10日。

点云侠的博客 36万+

poj2516最小费用最大流

描述 Dearboy,一个商品victualer,现在遇到了一个大问题,他需要你的帮助。在他的销售区域有N个店主(从1到N标记)从他那里存货.Dearboy有M个供应地点(从1到M标记),每个提供K种不同种类的商品(从1到K标记)。一旦店主订购商品,Dearboy应该安排哪个供应地点为店主提供多少商品以减少运输的总成本。  众所周知,从不同的供应地点向不同的店主运输不同种类的单件货物的成本可能不...

qq_40859951的博客 219

基于YOLOv11的工业装配完整性智能检测系统

在现代工业生产中,产品质量控制是确保企业竞争力的关键环节。其中,装配完整性检查——即检测产品是否安装了所有应有的部件,是质量检测中的重要一环。传统的人工检测方法存在效率低、易疲劳、主观性强等问题。本文提出了一种基于深度学习的目标检测算法YOLOv11的工业装配完整性智能检测系统,通过计算机视觉技术自动识别和验证产品装配的完整性。本文将详细阐述从数据准备、模型训练到系统部署的完整流程,提供可执行的代码实现,并介绍一个适用于该任务的参考数据集。

YOLO 554

POJ2516 Minimum Cost 最小费用流

此题一开始想错了算法,直接将k个物品放在一个网络中求了一次最小费用。直接TLE。。。。后来看了DISCUSS发现对于每一种物品分开求最小费用最大流。这样就降低了点的数量。每次费用流最坏的情况就是102个点,而之前一次求的话点最坏可能到5000,边的数量更加恐怖。。。。。。 建图。 对于第k种物品 1:第i个商店和源点连,容量为相应物品的需求,费用为0 2:第i个仓库和汇点连,容量为相应

707

计算机控制技术及应用

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

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

POJ【2516】Minimum Cost(最小费用流)

题目链接:http://poj.org/problem?id=2516 分析 这道题考查最小费用流,首先建立源点和汇点,源点指向所有的供应商,边的流量为供应商的供应量,费用为0,商店指向汇点,边的流量为商店的需求量,费用为0,供应商指向商店,流量为无穷大,代表流量没有限制(前提是供过于或等于求),费用为运送商品的费用。注意这道题需要分k次求最大流,这样每一次建边,边的流量就是每种物品的供应量或需求...

yj8023xx的博客 318

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

【POJ2516】【最小费用流】

Minimum Cost Time Limit: 4000MS   Memory Limit: 65536K Total Submissions: 15057   Accepted: 5176 Description Dearboy, a goods victualer, now comes to a big problem, and

ACM之路 345

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

poj 2516 Minimum Cost 【最小费用最大流】

题目:poj 2516 Minimum Cost 题意:有 n 个商店,k种物品和 m 个供货商,让你求进满足商店需求的货物的最小花费? 有必要说一下输入数据。 首先n ,k ,m  然后是一个n*m的矩阵,n个商店对每种货物的需求,表示第 i 个商店需要第 j 种货物 x个  然后是m * k 的矩阵,m个供货商可以供k种货物的数量,表示第 i 个供货商 提供第 j 中货物 x

大神养成中..... 3653

POJ 2516 Minimum Cost (网络流,最小费用流)

POJ 2516 Minimum Cost (网络流,最小费用流) 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) which s...

dipinzhu4111的博客 165

POJ2516

题目链接:http://poj.org/problem?id=2516 解题思路:   最小费用最大流,这个没什么疑问。但此题小难点在于读题,大难点在于建图。   首先,供应量小于需求量的时候直接输出“-1”。   供大于或等于求的情况,一开始我将每个供应商和每个购买人都拆成K个点,将所有供应商的点和超级源点相连,流量限制为库存量,费用为0;将所有购买人的点和超级汇点相连,流量限...

dielie6462的博客 201

Minimum Cost poj 2516 最小费用最大流,贵在建图+模板

Minimum Cost Time Limit: 4000MS   Memory Limit: 65536K Total Submissions: 12770   Accepted: 4349 Description Dearboy, a goods victualer, now comes to a big problem, and h

风华绝代 1059

POJ 2516 最小费用流

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

neweryyy的博客 221

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

POJ 2516 Minimum Cost  链接:http://poj.org/problem?id=2516 题意:有M个仓库,N个商人,K种物品。先输入N,M,K。然后输入N行K个数,每一行代表一个商人要购买的物品,其中K个数分别表示要购买的每件商品数。然后是M行K个数,每行表示仓库里的情况,其中K个数分别每种物品的库存量。接下来是K个矩阵,每个矩阵为N*M,分别表示第K种物

SIOFive的专栏 1207

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

很经典的一道费用流问题,题目大意是有N个商店,M个供应商,供应K种物品,每家商店对每种物品都有一个需求量,每家供应商供应的每种物品的量不同,而每家供应商运送每种物品到一家商店的成本也不一样,求在供等于求和供大于求的情况下供应商满足所有商店需求的最小成本,若供不应求,输出-1。 建图方法如下: 1.建立一个超级源,将其与供应商连接起来,容量为其对一种物品的供应量,代价为0; 2.建立一个超级汇

LycenYao的专栏 1901

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

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...

weixin_43179892的博客 298

★ POJ 2516 最小费用最大流(分开计算,K次费用流)

题意:给你m个供货源,n个店,k种商品,

【洛风城】 1426

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) whic

Vision 1030
上一篇: HDU 1853 最小费用最大流
下一篇: POJ 2195 min_cost_max_flow
MakingMaker
博客等级 码龄15年 6粉丝 108原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值