60分求助大佬!已经开long logn了
  • 板块P3406 海底高铁
  • 楼主zzz987
  • 当前回复0
  • 已保存回复0
  • 发布时间2023/12/15 21:18
  • 上次更新2023/12/16 07:45:07
查看原帖
60分求助大佬!已经开long logn了
1171003
zzz987楼主2023/12/15 21:18
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=1e5+5;
int b[N];
struct str{
	int a,b,c;
	int cnt; 
}city[N];
int n,m;
void add(int l,int r){
	b[l]++;
	b[r]--;
}
signed main(){
	cin >>n>>m;
	int x1,x2;	cin >>x1;
	for(int i=2;i<=m;i++){
		cin >>x2;
		if(x1<x2)
			add(x1,x2);
		else 	add(x2,x1);
		x1=x2;
	}
	for(int i=1;i<=m;i++)
		city[i].cnt=city[i-1].cnt+b[i];
	int sum=0;
	for(int i=1;i<n;i++){
		cin >>city[i].a>>city[i].b>>city[i].c;
		int cost=city[i].b*city[i].cnt+city[i].c;
		if(cost>=city[i].a*city[i].cnt)
			sum+=city[i].a*city[i].cnt;
		else 	
			sum+=cost;
	}
	cout <<sum;
	return 0;
}
2023/12/15 21:18
加载中...