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;
}
相关推荐
云深麋鹿16 小时前
C++ | 容器stack&queue
开发语言·c++
Xiu Yan16 小时前
Java 转 C++ 系列:STL容器之list
java·开发语言·数据结构·c++·stl·list·visual studio
234710212716 小时前
4.20 学习笔记
软件测试·笔记·python·学习
Jackyzhe16 小时前
从零学习Kafka:ZooKeeper vs KRaft
学习·zookeeper·kafka
木子墨51616 小时前
LeetCode 热题 100 精讲 | 计算几何篇:点积叉积 · 线段相交 · 凸包 · 多边形面积
c++·算法·leetcode·职场和发展·动态规划
sensen_kiss16 小时前
CAN302 Coursework1对 JavaScript 和 PHP 的考察
javascript·学习·php
源码之家16 小时前
计算机毕业设计:Python棉花产业数据可视化与预测系统 Django框架 ARIMA算法 数据分析 可视化 爬虫 大数据 大模型(建议收藏)✅
人工智能·python·算法·信息可视化·数据挖掘·django·课程设计
py有趣16 小时前
力扣热门100题之最小路径和
算法·leetcode
哥本哈士奇16 小时前
SQLAlchemy 学习笔记
笔记·学习
呼叫冰河谷16 小时前
Unity学习笔记(六)——3DRPG游戏(4)
笔记·学习·游戏