海底高铁--差分

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

然后忘开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;
} 
相关推荐
沐墨专攻技术20 分钟前
《空间复杂度(C语言)》
c语言·数据结构·算法·空间复杂度
wuqingshun3141591 小时前
蓝桥杯 6. k倍区间
c++·算法·职场和发展·蓝桥杯·深度优先
明月看潮生2 小时前
青少年编程与数学 02-016 Python数据结构与算法 29课题、自然语言处理算法
python·算法·青少年编程·自然语言处理·编程与数学
努力学习的小廉3 小时前
【C++】 —— 笔试刷题day_20
开发语言·c++
涛ing3 小时前
【Linux “less“ 命令详解】
linux·运维·c语言·c++·人工智能·vscode·bash
愚润求学4 小时前
【数据结构】红黑树
数据结构·c++·笔记
竹下为生4 小时前
LeetCode --- 154双周赛
算法·leetcode·哈希算法
xxjiaz4 小时前
二分查找-LeetCode
java·数据结构·算法·leetcode
算法练习生4 小时前
数据结构学习笔记 :排序算法详解与C语言实现
数据结构·学习·排序算法
爱的叹息5 小时前
【java实现+4种变体完整例子】排序算法中【插入排序】的详细解析,包含基础实现、常见变体的完整代码示例,以及各变体的对比表格
java·算法·排序算法