海底高铁--差分

明显用差分·来统计坐每一段的次数

然后忘开ll喜提70,(;′д`)ゞ

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<ll,int> PII;
int n,m;
ll an;
ll p[100011];
ll a[100011];
ll b[100011];
ll c[100011];
ll df[100011];
ll s[100011];
int main()
{
 cin>>n>>m;
 for(int i=0;i<m;i++)
 {
 	cin>>p[i];
 }
 for(int i=1;i<=n-1;i++) cin>>a[i]>>b[i]>>c[i];
 for(int i=0;i<m-1;i++)
 {
 	int l=min(p[i],p[i+1]);
 	int r=max(p[i],p[i+1]);
 	df[r]--;
 	df[l]++;
 }
 for(int i=1;i<=n-1;i++)
 {
 	s[i]=s[i-1]+df[i];
 	//cout<<s[i]<<" ";
 }
 for(int i=1;i<=n-1;i++)
 {
 	if(a[i]*s[i]<c[i]+b[i]*s[i])
 	{
 		an+=a[i]*s[i];
	 }else an+=c[i]+b[i]*s[i];
 }
 cout<<an;
return 0;
} 
相关推荐
买了一束花6 分钟前
MATLAB导出和导入Excel文件表格数据并处理
人工智能·算法·matlab
纪元A梦40 分钟前
贪心算法应用:顶点覆盖问题详解
java·算法·贪心算法
咩咩觉主1 小时前
c#数据结构 线性表篇 非常用线性集合总结
开发语言·数据结构·unity·c#·游戏引擎·程序框架
Darkwanderor1 小时前
c++STL-string的模拟实现
c++·string
南风与鱼1 小时前
【数据结构】红黑树(C++)
c++·红黑树
李匠20241 小时前
C++GO语言微服务和服务发现②
开发语言·c++·golang·服务发现
爱补鱼的猫猫2 小时前
22、近端策略优化算法(PPO)论文笔记
论文阅读·算法
开心星人2 小时前
【论文阅读】Reconstructive Neuron Pruning for Backdoor Defense
论文阅读·算法·剪枝
虾球xz2 小时前
游戏引擎学习第271天:生成可行走的点
c++·学习·游戏引擎
qq_433554542 小时前
C++ STL编程 vector空间预留、vector高效删除、vector数据排序、vector代码练习
开发语言·c++