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
- 标签
- (无)
- 递交数
- 292
- 已通过
- 81
- 上传者