hdu 3996 Gold Mine

Anaconda离线创建python环境 既然是离线创建python环境,就需要有一个已经创建好的python环境。所以我们有两台win10的机器,分别是A和B。两台机器都安装了anaconda。其中A可以连网,因此我们在A上创建好一个python2.7的环境py27,然后将py27移植(安装)到B上。B连不连网都无所谓。 一、机器上A上创建python2.7的环境py27 有两种方法: 方法1:使用Anaconda的图形界面。首先,点击Environments->Create,然后输入要创建的环境名称"py27",然后选择2.7,如图 阅读详情

Gold Mine

Time Limit: 6000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 1464    Accepted Submission(s): 335


Problem Description
Long long ago, there is a gold mine.The mine consist of many layout, so some area is easy to dig, but some is very hard to dig.To dig one gold, we should cost some value and then gain some value. There are many area that have gold, because of the layout, if one people want to dig one gold in some layout, he must dig some gold on some layout that above this gold's layout. A gold seeker come here to dig gold.The question is how much value the gold he can dig, suppose he have infinite money in the begin.
 

Input
First line the case number.(<=10)

Then for every case:
  one line for layout number.(<=100)
  for every layout
  first line gold number(<=25)
  then one line for the dig cost and the gold value(32bit integer), the related gold number that must be digged first(<=50)

then w lines descripte the related gold followed, each line two number, one layout num, one for the order in that layout
see sample for details
 

Output
Case #x: y.
x for case number, count from 1.
y for the answer.
 

Sample Input
  
1 2 1 10 100 0 2 10 100 1 1 1 10 100 1 1 1
 

Sample Output
  
Case #1: 270
 

Source

题目大意:本题描述比较模糊,我重新描述下Input:
                 第一行:T表示测试组数(T<=10),接下来T组测试数据,每组包括
                         第一行:n(n<=100),表示有n个金矿区(暂且称为金矿区,每个金矿区有若干个采矿点)
                         接下来有n组数据,每组描述每个金矿区情况:
                         对于第i组,第一行输入m(m<=25),表示第i(1=<i<=n)个金矿区有m个采矿点
                                             接下来又有m组数据,每组描述该金矿区的某个采矿点情况:
                                             对于第j组,输入cost(开采费用),val(开采后能获利),w(开采此采矿点前必须要开采其他m个采矿点)
                                                                 接下来w行,每行两个整数a,b,表示必须先开采第a个金矿区的第b个采矿点。
分析:比较明显的最大闭合权图。 
          建图: 
          如果某个金矿的开发利润为正值,就在源点和该点之间连一条容量为该利润的边 
          如果某个金矿的开发利润为负值,就在该点和汇点之间连一条容量为该利润绝对值的边 
          如果某个金矿收到另一个金矿的限制,就在两个金矿之间连一条容量为INF的边。 
          累计所有正值利润的和  sum,获得的最大利润为sum - ans 

代码:
dinic
#include<cstdio>
#include<cstring>
#define ll __int64
const int N=2505;
const int M=72600;
const ll INF=10000000000;
int tol,n,s,t;
ll ans;
int head[N],d[N];
struct node
{
	ll f;
    int y,nxt;
}edge[M];
ll min(ll a,ll b){return a<b?a:b;}
void add(int x,int y,ll f)
{
    edge[tol].y=y;
    edge[tol].f=f;
    edge[tol].nxt=head[x];
    head[x]=tol++;
    edge[tol].y=x;
    edge[tol].f=0;
    edge[tol].nxt=head[y];
    head[y]=tol++;
}
bool bfs()
{
	int front=0,rear=0,q[N],u,v,i;
	memset(d,-1,sizeof(d));
	d[s]=0;
	q[rear++]=s;
	while(front<rear)
	{
		u=q[front++];
		for(i=head[u];i!=-1;i=edge[i].nxt)
		{
			v=edge[i].y;
			if(edge[i].f&&d[v]==-1)
			{
				d[v]=d[u]+1;
				if(v==t)return 1;
				q[rear++]=v;
			}
		}
	}
	return 0;
}
ll dfs(int s,ll limit)
{
	if(s==t)return limit;
	int i,v;
	ll sum=0,tmp;
	for(i=head[s];i!=-1;i=edge[i].nxt)
	{
		v=edge[i].y;
		if(edge[i].f&&d[s]+1==d[v])
		{
			tmp=dfs(v,min(limit-sum,edge[i].f));
			edge[i].f-=tmp;
			edge[i^1].f+=tmp;
			sum+=tmp;
			if(limit==sum)return sum;
		}
	}
	if(sum==0)d[s]=-1;
	return sum;
}
void dinic(){while(bfs())ans+=dfs(s,INF);}
int main()
{
	int T,ca=1,i,j,a,b,m,w,val,cost;
	ll sum;
	scanf("%d",&T);
	while(T--)
	{
		memset(head,-1,sizeof(head));
		scanf("%d",&n);
		s=0,t=n*25+1;tol=0,ans=0;sum=0;
		for(i=0;i<n;i++)
		{
			scanf("%d",&m);
			for(j=1;j<=m;j++)
			{
				scanf("%d%d%d",&cost,&val,&w);
				val-=cost;
				if(val>0){add(s,i*25+j,val);sum+=val;}
				else add(i*25+j,t,-val);
				while(w--)
				{
					scanf("%d%d",&a,&b);
					add(i*25+j,(a-1)*25+b,INF);
				}
			}
		}
		dinic();
		printf("Case #%d: %I64d\n",ca++,sum-ans);
	}
	return 0;
}


sap
#include<cstdio>
#include<cstring>
#define ll __int64
const int N=2505;
const int M=72600;
const ll INF=10000000000;
int n,s,t,tol;
ll ans;
int head[N],arc[N],pre[N],dis[N],gap[N];
struct node
{
	ll f;
	int y,nxt;
}edge[M];
void add(int x,int y,ll f)
{
	edge[tol].y=y;
	edge[tol].f=f;
	edge[tol].nxt=head[x];
	head[x]=tol++;
	edge[tol].y=x;
	edge[tol].f=0;
	edge[tol].nxt=head[y];
	head[y]=tol++;
}
void sap()
{
	memset(dis,0,sizeof(dis));
	memset(gap,0,sizeof(gap));
	memcpy(arc,head,sizeof(head));
	gap[0]=n;
	ll arg=INF;
	int u=pre[s]=s;
	while(dis[s]<n)
	{
L:
		for(int& i=arc[u];i!=-1;i=edge[i].nxt)
		{
			int v=edge[i].y;
			if(edge[i].f&&dis[u]==dis[v]+1)
			{
				if(arg>edge[i].f)arg=edge[i].f;
				pre[v]=u;u=v;
				if(v==t)
				{
					ans+=arg;
					for(u=pre[u];v!=s;v=u,u=pre[u])
					{
						edge[arc[u]].f-=arg;
						edge[arc[u]^1].f+=arg;
					}
					arg=INF;
				}
				goto L;
			}
		}
		int min=n;
		for(int j=head[u];j!=-1;j=edge[j].nxt)
		{
			int v=edge[j].y;
			if(edge[j].f&&min>dis[v])
			{
				arc[u]=j;
				min=dis[v];
			}
		}
		if(--gap[dis[u]]==0)break;
		dis[u]=min+1;
		gap[dis[u]]++;
		u=pre[u];
	}
}
int main()
{
	int T,ca=1,i,j,a,b,m,w,cost,val;
	ll sum;
	scanf("%d",&T);
	while(T--)
	{
		memset(head,-1,sizeof(head));
		scanf("%d",&n);
		s=0,t=n*25+1;tol=0,ans=0;sum=0;
		for(i=0;i<n;i++)
		{
			scanf("%d",&m);
			for(j=1;j<=m;j++)
			{
				scanf("%d%d%d",&cost,&val,&w);
				val-=cost;
				if(val>0){add(s,i*25+j,val);sum+=val;}
				else add(i*25+j,t,-val);
				while(w--)
				{
					scanf("%d%d",&a,&b);
					add(i*25+j,(a-1)*25+b,INF);
				}
			}
		}
		n=t+1;
		sap();
		printf("Case #%d: %I64d\n",ca++,sum-ans);
	}
	return 0;
}
Kubernetes+EdgeX:构建企业级AI边缘推理平台 设备:工业摄像头(RTSP协议,输出1920x1080视频流);AI模型:YOLOv8训练的轴承裂纹检测模型(识别“裂纹”“正常”两种类型);目标:摄像头采集图像→EdgeX传输数据→K8s推理服务检测→结果反馈到报警器(HTTP协议)。Kubernetes+EdgeX的组合,为企业构建AI边缘推理平台提供了标准化、可扩展标准化:K8s的容器编排和EdgeX的设备管理,都是行业标准,避免“重复造轮子”;可扩展:支持从单边缘节点到 thousands of nodes 的规模,满足企业的增长需求; 阅读详情

相关推荐

Android存储空间不足下,APP出现奔溃等情况

版权声明:本文为博主原创文章,未经博主允许不得转载。 1. 问题起因     实时录制视频,使用getExternalCacheDir()函数返回的路径作为文件缓存区 2. 问题产生     系统在空间不足的情况下第一清除getExternalCacheDir和getCache文件下的缓存,导致正在录制的视频出现Error。 3. 解决方案     第一

OverseasAndroid的博客 4160

HDU 3996 Gold Mine(最大权闭合图)

题目地址 题意:题意还是蛮复杂的,但是好好分析起来就好了,先告诉你有T组样例,然后每个样例里面有n个区域(n<=100),然后呢?每个区域里面都有m个金矿(m<=25)(其实我觉得直接看金矿就好了,标号就设为 i*26+j),然后告诉你每个金矿要花掉的钱以及能赚到的钱,以及与多少个金矿有关系,然后c行就是有关系金矿的区域号以及区域里面第几个金矿了(按之前的公式算就好了)。问最大的收益是多少?

不要錯過才珍惜 474

生信分析实战指南:Linux环境下EMBOSS的安装与核心功能详解

本文详细介绍了在Linux环境下安装和使用EMBOSS工具包的实战指南,涵盖源码编译、包管理器安装和Conda安装三种方法,并演示了序列比对、序列特征提取和引物设计等核心功能。EMBOSS作为生物信息学领域的开源工具集,适用于序列分析、蛋白质结构预测等多种任务,帮助研究人员高效完成生信分析工作。

weixin_29202213的博客 462

hdoj 3996 Gold Mine 【最小割 之 最大权闭合图】

Gold Mine Time Limit: 6000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 2415    Accepted Submission(s): 525 Problem Description Long long ago, th

世界很大 579

记一次Nacos线程数飙升排查

Nacos线程飙升问题排查

叭嘣的博客 2631

Simulink进行无人机飞行力学建模与仿真

摘要:本文详细介绍了使用MATLAB/Simulink进行四旋翼无人机飞行力学建模与仿真的步骤。内容包括准备工作、动力学方程概述、模型构建(使用State-Space或Simscape Multibody)、可选控制器设计、仿真参数配置及结果分析。教程强调理解飞行力学原理和坐标系转换的重要性,建议根据需求选择模型复杂度,并推荐查阅学术文献获取更深入的建模方法。通过本教程,读者可掌握无人机动力学建模基础,为控制系统开发和性能优化奠定基础。

amy_mhd的博客 272

HDU3996 Gold Mine最大权闭合图 2011 Multi-University Training Contest 16 - Host by TJU

Gold Mine Time Limit: 6000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 225 Accepted Submission(s)

魔神翼 1275

FPGA实践教程: 使用HLS将C程序生成IP核心进行FPGA开发

请根据您使用的FPGA开发板和供应商选择适当的HLS工具,并按照他们的安装指南进行安装。根据您使用的FPGA开发板和供应商选择适当的HLS工具,并按照他们的安装指南进行安装。通过本教程,您了解了如何使用HLS工具将C程序生成IP核心,并将其用于FPGA开发。在HLS项目中,您可以对C程序进行设计和优化,以生成对应的IP核心。在HLS项目中,您可以对C程序进行设计和优化,以生成相应的IP核心。将导出的IP核心导入到FPGA项目中。使用FPGA开发环境的菜单中的"导入"或"添加文件"选项导入IP核心。

CqpFsharp的博客 454

HDU 3996 Gold Mine(最小割---最大权闭合)

题目地址:HDU 3996 很简单的最大权闭合题,只不过有个小小的坑点。。那就是需要用int64。。。。但是为什么我交上去返回的TLE。。。。 建图思路:分别对每一层的金矿都编号。方便处理。然后源点连接正权点,汇点连接负权点,每个点连接它所依赖的。 用正权之和减去最大流即为答案。 代码如下:#include #include #include #include #include

scf0920 1129

WPS访问权限不足怎么解决??具体怎么操作?

🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论,助你稳步进阶、放大技术价值。

**My Coding Family** 4170

Vue3 - 详细实现调用浏览器摄像头拍照并生成图片预览,支持将抓拍的图像保存到用户本地或上传到服务器、调取前置摄像头和后置摄像头,开启摄像头并进行拍照,vue实现调用摄像头,电脑或手机调用摄像头拍照

vue3,nuxt3,摄像头,vue3网站打开摄像头拍照,vue3项目调用摄像头实现拍照功能,拍照后怎么保存,照相后上传到后端服务器,开启摄像头黑屏,如何默认后置摄像头,网页开启电脑摄像头并照相,前置拍照,vue3如何调用手机摄像头进行拍摄,拒绝权限后不再弹出了,微信公众号网页,摄像头报错,拍照左右镜像反了,浏览器不兼容怎么办,vue3调用电脑端摄像头实时拍照,解决调用摄像头权限无法弹出,打不开摄像头,Vue3如何调用手机的摄像头,调用本地摄像头实现拍照,浏览器不弹摄像头权限了,如何不使用https运行测试

🏆 前端领域优质创作者 8654

最大权闭合图hdu3996

定义:最大权闭合图:是有向图的一个点集,且该点集的所有出边都指向该集合。即闭合图内任意点的集合也在改闭合图内,给每个点分配一个点权值Pu,最大权闭合图就是使闭合图的点权之和最大。 最小割建边方式:源点s和正权的点连接,容量是Pu,负权的点和汇点t相连,容量是-Pu,之间的边权值inf,过一遍最大流ans,正权之和sum-ans就是最大权闭合图的值。 例题:HDU3996 题意...

weixin_30563319的博客 165

uniapp:解决微信小程序包体积超过2M的优化方案+详解分包问题,编译小程序体积大于2M不能上传和预览提示体积太大的处理教程,uniApp微信小程序主包过大问题如何解决(排查可疑点+分包+最小改动)

uniapp微信小程序开发,如何解决打包太大无法预览发布的问题,uniApp微信小程序包体积超过2M的优化方法,uni-app打包微信小程序主包超2M终极解决方案,使用uniapp开发微信小程序使用uni_modules导致主包文件过大,无法发布的解决方法,UniApp开发的微信小程序主包过大问题及解决方案 编译小程序时Node-modules被打入主包,小程序体积大于2M不能上传和预览,怎么处理,解决微信小程序主包太大问题,微信小程序中主包和分包过大,详解分包问题,uni-app 微信小程序发布时,主包超

✅ 精选推荐文章 5066

hdu3996Gold Mine 最小割

//给出每个点的权值, //从中选出一些点,使得这些点的权值和最大 //其中选择该点一定要选择在它前面的点,问最终的最大权值是多少 //对于所有正权的点与源点相连,权值为该点权值 //所有负权点与汇点相连,权值为该点权值的绝对值 //每一点与其前面的点相连,权值为无穷大 //这样求出这个图的最小割,用所有正权之和减去这个最小割即为结果 //减去最小割后剩下的点所有正权点集到负权的点集没有边相连,

ijbuhv的专栏 1266

SAP B1中文培訓教材_SDK

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

Statistics and Machine Learning Toolbox

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

HDU 3996 Gold Mine

Gold Mine Time Limit: 6000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 1361 Accepted Submission(s): 312 Problem Description Long long ago, there

蛤蛤~ 712

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

HDU 3996 Gold Mine

/* 最大权闭包经典 对于一个点连汇点,边权为花费值,连源点,边权为赚的的值 两个点有约束关系a->b,连单项边b->a; 赚的值的和减去最大流就是解 */ #include #include #include #include #include #include #inc

Join Hands 1229

NTscan扫描工具

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

HDU-3996 Gold Mine 最大闭合权

  题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3996   很无语加蛋碎的题目!题意描述不清,然后还有超int(这里wa,果断被坑)= =!方法很简单,很容易看出是最大闭合权。 1 //STATUS:G++_AC_109MS_2068KB 2 #include<stdio.h> 3 #include<st...

weixin_30265171的博客 118

【HDU】3996 Gold Mine 最大权闭合子图

传送门:【HDU】3996 Gold Mine 题目分析:zui da quan bi

poursoul 1133

HDU 3996 Gold Mine 最大权闭合图

题目:http://acm.hdu.edu.cn/showproblem.php?pid=3996 题意:有一个金矿,分成了很多区域,每个区域内又可以分成几部分,每部分有一定量的金子,挖掘金子有一定的花费。要挖掘某个区域内的某部分金子前,必须要把在它之上的金子挖掘出来。问最大收益是多少(初始有无限多的钱可以去挖金子) 思路:最大权闭合图,很简单,注意数据类型用long long,另外就是题意说

弱智就要多努力 493

hdu 3996 Gold Mine (最大权闭合图)

这题卡数据!!!没意义: 题目大意:本题描述比较模糊,我重新描述下Input:                  第一行:T表示测试组数(T                          第一行:n(n                          接下来有n组数据,每组描述每个金矿区情况:                          对于第i组,第一行输入m(m    

LSS 738

hdu 3996 Gold Mine 最大权闭合图

Problem Description Long long ago, there is a gold mine.The mine consist of many layout, so some area is easy to dig, but some is very hard

kongming_acm的专栏 578

HDU3996 Gold Mine(最大权闭合子图)

1 #include<cstdio> 2 #include<cstring> 3 #include<queue> 4 #include<algorithm> 5 using namespace std; 6 #define INF (1LL<<60) 7 #define MA...

dengliugong3918的博客 151

HDU 3996 Gold Mine【最大闭合权图】

题意: 有n 个金矿,每个金矿开发需要一定的价值,开发之后可以获得一定的价值,而且一些金矿受到另一些金矿的限制,即开采这个金矿之前要开采 限制它的金矿,问最多可以获得多少价值。 分析: 比较明显的最大闭合权图。 建图: 如果某个金矿的开发利润为正值,就在源点和该点之间连一条容量为该利润的边 如果某个金矿的...

weixin_33672400的博客 132

hdu 3996 Gold Mine (最大权闭合子图)

Gold Mine Time Limit: 6000/2000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 3017Accepted Submission(s): 691 Problem Description Long long ago, th...

咸鱼有梦想 303

多校第16场 HDU3996 Gold Mine (最大权闭合图)

被数据范围坑了。。。 构图方法这里讲的很详细 http://apps.hi.baidu.com/share/detail/18295127 和之前的一道题类似, 用总的正值和减去最小割,   #include #include using namespace std; typedef long long ll; const int N=3550; const int M=900

jxy859的专栏 1380

hdu 3996 Gold Mine 最大权闭合子图

Gold Mine Time Limit: 6000/2000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 2374Accepted Submission(s): 514 Problem Description Long long ago, there is a g...

weixin_30666943的博客 161
上一篇: 匈牙利算法
下一篇: hdu 4417 Super Mario
libing923
博客等级 码龄15年 12粉丝 71原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值