8 条题解
- 
  0
#include #include #include using namespace std;
int main() { ios::sync_with_stdio(false); cin.tie(0);
int N, M; cin >> N >> M; vector<int> P(M); for (int i = 0; i < M; i++) { cin >> P[i]; } vector<int> A(N - 1), B(N - 1), C(N - 1); for (int i = 0; i < N - 1; i++) { cin >> A[i] >> B[i] >> C[i]; } // 统计每段铁路被经过的次数 vector<int> count(N - 1, 0); for (int i = 1; i < M; i++) { int start = min(P[i - 1], P[i]) - 1; int end = max(P[i - 1], P[i]) - 1; for (int j = start; j < end; j++) { count[j]++; } } long long total = 0; for (int i = 0; i < N - 1; i++) { long long ticket_cost = (long long)count[i] * A[i]; long long ic_cost = C[i] + (long long)count[i] * B[i]; total += min(ticket_cost, ic_cost); } cout << total << endl; return 0;}
 
信息
- ID
 - 2627
 - 时间
 - 1000ms
 - 内存
 - 256MiB
 - 难度
 - 6
 - 标签
 - (无)
 - 递交数
 - 300
 - 已通过
 - 84
 - 上传者