首页 > 其他分享 >P1073 [NOIP2009 提高组] 最优贸易

P1073 [NOIP2009 提高组] 最优贸易

时间:2024-09-18 10:02:37浏览次数:12  
标签:cnt val head int NOIP2009 add 最优 P1073

大佬题解

感觉分层图的做法太nb了吧,每次向下连边更新权值,我确实没什么补充的了,还是看大佬的吧。

#include <bits/stdc++.h>
using namespace std;
#define ll long long 
const int N=1e7+10;
int n,m;
int val[N];

int cnt;
int head[N];
struct ss{
	int to,w,next;
}a[N];
void add(int u,int v,int w){
	a[cnt].to=v;
	a[cnt].w=w;
	a[cnt].next=head[u];
	head[u]=cnt++;
}

ll dis[N];
bool vis[N];

queue<int> q;

void spfa(){
	
	for(int i=1;i<=n*3;i++){
		dis[i]=INT_MIN;
	}
	dis[1]=0;
	q.push(1);
	vis[1]=1;
	
	while(!q.empty()){
		int u=q.front();
		q.pop();
		
		vis[u]=0;
		
		for(int i=head[u];~i;i=a[i].next){
			int v=a[i].to;
			if(dis[v]<dis[u]+a[i].w){
				dis[v]=dis[u]+a[i].w;
				if(!vis[v]){
					vis[v]=1;
					q.push(v);
				}
			}
		} 
	}
	
}



int main(){
    ios::sync_with_stdio(false);
	memset(head,-1,sizeof head);
    cin>>n>>m;
    
    for(int i=1;i<=n;i++){
    	cin>>val[i];
	}
    
    for(int i=1;i<=m;i++){
    	int u,v,w;
    	cin>>u>>v>>w;
    	add(u,v,0);
		add(u+n,v+n,0);
		add(u+n+n,v+n+n,0);
		if(w==2){
			add(v,u,0);
			add(v+n,u+n,0);
			add(v+n+n,u+n+n,0);
		}	
	}
	
	for(int i=1;i<=n;i++){
		add(i,i+n,-val[i]);
		add(i+n,i+n+n,val[i]);
	}
	
	spfa();
	
	cout<<dis[n*3];
	
    return 0;
}

标签:cnt,val,head,int,NOIP2009,add,最优,P1073
From: https://www.cnblogs.com/sadlin/p/18417994

相关文章

  • 最优化理论与自动驾驶(十):纯跟踪算法原理、公式及代码演示
    纯跟踪算法(PurePursuitAlgorithm)是一种用于路径跟踪的几何控制算法,广泛应用于自动驾驶、机器人导航等领域。其基本思想是通过选择预定路径上的目标点(预瞄点),并控制转向角,使车辆不断逼近并跟随该目标点,从而达到路径跟踪的效果。1.纯跟踪算法的基本原理在纯跟踪算法中,控制车......
  • 堪称最优秀的 Docker 可视化管理工具 ——Portainer
    随着Docker内实例越来越多,就得涉及到监控以及统计的需求:有多少个容器?运行的有几个?有哪些容器CPU使用率低?...Portainer是一款轻量级的应用,它提供了图形化界面,用于方便地管理Docker环境,包括单机环境和集群环境。‍启动与登录官网:portainer.io安装文档:https://docs.porta......
  • UCB算法(帮助做出最优选择的算法)
    UCB(UpperConfidenceBound)算法是一种用于解决多臂老x虎机问题的启发式方法。多臂老x虎机问题是一种用以模拟现实世界决策问题的数学模型,其中“臂”代表不同的行动或选择,而“老x虎机”代表这些行动的随机结果。UCB算法的目标是在探索(exploration)和利用(exploitation)之间找到最佳平......
  • 基于GA遗传优化的TSP问题最优路线规划matlab仿真
    1.程序功能描述旅行商问题(TravelingSalesmanProblem,TSP)是计算机科学和运筹学中的经典问题,其目标是寻找访问一系列城市并返回起始城市的最短可能路线。此问题属于NP-难问题,对于大规模的实例,精确的求解方法在计算上不可行。因此,启发式方法,特别是遗传算法(GeneticAlgorithms,GA),......
  • 多模态大模型的最优预训练范式
    ChatDev——大语言模型驱动的多智能体协作与演化视频号目前主流的多模态大模型的训练基本都是分为预训练和微调两阶段来进行的。预训练阶段是为了让大语言模型(LLM)具有理解视觉信息的能力,也可以认为是将视觉特征空间对齐到文本空间。微调阶段就是使用特定领域的数据,通过......
  • 跨越网络边界:内外网数据摆渡最优方案!
    随着网络技术的演进,网络攻击、数据窃取、数据泄露事件也愈发频繁,给企业造成损失和负面影响,企业数据防泄漏治理是大趋势,也是自身迫切需求。网络隔离技术作为网络安全和数据安全的重要保障手段被广泛应用到各个行业领域,对于金融行业,国家出台的《金融行业信息系统信息安全等级保护实......
  • 【算法改进】离散分数阶Caputo方法克服局部最优陷阱:蝠鲼觅食优化算法案例研究
    目录1.摘要2.离散分数阶Caputo方法3.基于Caputo定义的分数阶蝠鲼觅食优化算法4.结果展示5.参考文献6.代码获取1.摘要增强元启发式(MH)优化算法的探索和开发阶段是避免局部最优的关键,本工作提出了一种新的蝠鲼觅食优化算法变体,用于全局优化问题、工程设计优化问题和......
  • 最优化(13):近似点梯度法、Nesterov算法
    6.1  近似点梯度法        6.1.1 邻近算子(proximaloperator):主要介绍proximaloperator的相关定义和性质        6.1.2  近似点梯度法:给出了proximalgradientmethod算法框架        6.1.3 应用举例:LASSOproblem和Low-rankmatrixcomp......
  • 最优化与计数
    动态规划:可以认为由状态,转移两个过程构成树上优化技巧P1272重建道路设,dp[i][j]为包含i的大小为j的连通块的最小操作次数,枚举i的每个子树一个个合并上去。考虑两个点i,j只会在lca处有计算时间贡献,所以是\(O(n^2)\)的LOJ160.树形背包先跑dfs序,设dp[i][w]为从第i个位置开始......
  • 南沙信息学家教陈老师: 1349:【例4-10】最优布线问题
    ​【题目描述】学校有nn台计算机,为了方便数据传输,现要将它们用数据线连接起来。两台计算机被连接是指它们有数据线连接。由于计算机所处的位置不同,因此不同的两台计算机的连接费用往往是不同的。当然,如果将任意两台计算机都用数据线连接,费用将是相当庞大的。为了节省费用,我们......