- Keda的研学
1
- @ 2026-7-21 11:19:38
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define pii pair<int, int>
int solve() {
ll n, A, B, C;
cin >> n >> A >> B >> C;
vector e(n + 1, vector<int>(n + 1));
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
cin >> e[i][j];
}
}
const ll inf = 1e18 + 10;
vector<ll> visi(n * 2 + 1), d(n * 2 + 1, inf);
priority_queue<pair<ll, int>, vector<pair<ll, int>>, greater<pair<ll, int>>> q;
d[1] = 0;
q.push({0, 1});
while (q.size()) {
auto [dis, u] = q.top(); q.pop();
if (visi[u]) continue;
visi[u] = 1;
for (int v = 1; v <= n; v++) {
if (u <= n) {
ll w = e[v][u] * A;
if (d[v] > dis + w) {
d[v] = dis + w;
q.push({d[v], v});
}
if (d[u + n] >= dis + 0) {
d[u + n] = dis + 0;
q.push({d[u + n], u + n});
}
} else {
ll w = e[u - n][v] * B + C;
if (d[v + n] > dis + w) {
d[v + n] = dis + w;
q.push({d[v + n], v + n});
}
}
}
}
cout << (d[2 * n]) << '\n';
return 1;
}
signed main() {
int t = 1;
// cin >> t;
while (t--) solve();
return 0;
}
/*
g++ -std=c++20 1.cpp -o 1 && 1 < in.txt > out.txt
*/
0 条评论
目前还没有评论...
信息
- ID
- 494
- 时间
- ms
- 内存
- MiB
- 难度
- 6
- 标签
- 递交数
- 107
- 已通过
- 36
- 上传者