海底高铁--差分

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

然后忘开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;
} 
相关推荐
你真会26 分钟前
【数据结构知识分享】顺序表详解
数据结构·学习·算法
Two_brushes.30 分钟前
高性能分布式消息队列系统(二)
c++·后端·mq
秦少游在淮海1 小时前
C++ - STL #什么是STL #STL的版本 #闭源开源 #STL的六大组件
开发语言·c++
@蓝莓果粒茶1 小时前
LeetCode第245题_最短单词距离III
c语言·c++·笔记·学习·算法·leetcode·c#
闻闻不会编程1 小时前
704. 二分查找 (力扣)
数据结构·算法·leetcode
AndrewHZ2 小时前
【图像处理基石】立体匹配的经典算法有哪些?
图像处理·算法·计算机视觉·滤波·模式识别·立体匹配
AndrewHZ2 小时前
【图像处理入门】4. 图像增强技术——对比度与亮度的魔法调节
图像处理·算法·计算机视觉·几何变换·图像增强·模式识别
showmeyourcode0.o2 小时前
QT常用控件(1)
开发语言·c++·qt
不二狗2 小时前
每日算法 -【Swift 算法】查找字符串数组中的最长公共前缀
开发语言·算法·swift
不二狗2 小时前
每日算法 -【Swift 算法】将整数转换为罗马数字
开发语言·算法·swift