9 条题解

  • 0
    @ 2026-4-5 12:47:58
    #include<bits/stdc++.h>
    using namespace std;
    int p[100005],a[100005],b[100005],c[100005];
    long long sum,ans[100005];
    int main(){
    	int n,m;
    	cin>>n>>m;
    	for(int i=1;i<=m;i++){
    		cin>>p[i];
    	}
    	for(int i=1;i<n;i++){
    		cin>>a[i]>>b[i]>>c[i];
    	}
    	for(int i=1;i<=m-1;i++){
    		ans[min(p[i],p[i+1])]++;
    		ans[max(p[i],p[i+1])]--;
    	}
    	for(int i=1;i<=n;i++){
    		ans[i]+=ans[i-1];
    	}
    	for(int i=1;i<n;i++){
    		sum+=min(a[i]*ans[i],(b[i]*ans[i]+c[i]));
    	}
    	cout<<sum<<endl;
    	return 0; 
    }
    
    

    信息

    ID
    2627
    时间
    1000ms
    内存
    256MiB
    难度
    6
    标签
    (无)
    递交数
    357
    已通过
    104
    上传者