19| 海底高铁

一、核心思路

行程是从 P1、P2...Pk,每一段都会经过若干段铁路。可以利用差分数组来统计每一段铁路(第Pi 段)在整个行程中被经过的总次数。对于每一段铁路Pi,我们可以独立决策是全部买纸质票,还是买一张 IC 卡后每次刷卡。

二·、代码实现

cpp 复制代码
typedef long long LL;
const int N = 1e6;
int n, m;
LL f[N];
int x, y;
int main ()
{
	cin >> n >> m;
	// 构建差分数组 
	cin >> x; // 起始城市
	for (int i = 2; i <= m; i++)
	{
		cin >> y;
		if (x > y) 
		{
			f[x]--;
			f[y]++;
		}
		else
		{
			f[x]++;
			f[y]--;
		}
		x = y;
	 } 
	 //  前缀和还原原始数组表示各段城市间链路经过的次数
	 for (int i = 1; i <= n; i++) f[i] += f[i-1];
	 LL ret = 0;
	 for (int i = 1; i < n; i++)
	 {
	 	int a, b, c; cin >> a >> b >> c;
	 	ret += min(f[i] * a, c + b * f[i]);
	  } 
	cout << ret;
	return 0;
}
相关推荐
Frank_refuel1 小时前
C++11之一场名为“搬家”的 C++ 之旅
开发语言·c++
海绵宝宝转agent1 小时前
learn-claude-code第1-5章开源学习笔记分享
人工智能·笔记·python·学习
每天都要写算法(努力版)2 小时前
【行业前沿报告】DAgger:让智能体在自己走到的状态上学习
人工智能·学习·机器学习
hetao17338373 小时前
2026-10-03~04 hetao1733837 的刷题记录
c++·算法
Zootopia6264 小时前
飞行力学知识梳理1|飞行性能与稳定性
人工智能·python·算法·机器学习·无人机·学习方法·信息与通信
longlongzihan4 小时前
从LeetCode 70. 爬楼梯看动态规划:如何精准推导状态转移方程?
c++·算法·leetcode·动态规划
91刘仁德4 小时前
HTTP协议详解:从URL到HTTP服务器的完整实战
服务器·网络·笔记·网络协议·http
2601_960356385 小时前
2027校招采购岗解析:数学基础如何迁移到需求预测、成本与供应商分析
人工智能·算法
h_a_o777oah5 小时前
【树论】树链剖分:将树形结构转化为线性结构以处理树上路径问题(洛谷 P3384 附C++代码模板)
数据结构·算法·线段树·acm·树链剖分·树论·重链剖分
HEJOO95 小时前
指针的算术运算详解
java·数据结构·算法