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;
}
相关推荐
xw-busy-code15 分钟前
抽象语法书学习笔记
笔记·学习·ast·抽象语法树
小羊羔heihei24 分钟前
Python编程实战:12道趣味算法题
笔记·python·学习·其他·算法·学习方法·交友
三维重建-光栅投影30 分钟前
PCL之RANSAC实践
算法
JMchen12342 分钟前
Android NDK开发从入门到实战:解锁应用性能的终极武器
android·开发语言·c++·python·c#·android studio·ndk开发
weixin_4577600043 分钟前
深入解析 Beam Search:从原理到实践的高效解码算法
python·算法
ulimate_44 分钟前
anygrasp算法:调研与使用
算法
鸽子一号1 小时前
c#笔记之接口和抽象类
笔记
名字不相符1 小时前
2026年3月27日NSSCTF之[SWPU 2019]漂流记的马里奥
学习·ctf·萌新
小羊羔heihei1 小时前
Python列表操作全攻略
经验分享·笔记·python·学习·其他·交友
愣头不青1 小时前
96.不同的二叉搜索树
数据结构·算法·leetcode