#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
上传者