제출 #1359622

#제출 시각아이디문제언어결과실행 시간메모리
1359622nagorn_phRoller Coaster Railroad (IOI16_railroad)C++20
34 / 100
261 ms589824 KiB
#include "railroad.h"
#include <bits/stdc++.h>
#define int long long
#define pii pair <int, int>
#define emb emplace_back
#define all(a) a.begin(), a.end()

using namespace std;

const int N = 2e5 + 5;
const int inf = 1e18;

long long plan_roller_coaster(std::vector<int32_t> s, std::vector<int32_t> t) {
    int n = s.size();
    int dp[1 << n][n]; for (int i = 0; i < (1 << n); i++) for (int j = 0; j < n; j++) dp[i][j] = inf;
    for (int i = 0; i < n; i++) dp[(1 << i)][i] = 0;
    for (int mask = 1; mask < (1 << n); mask++) {
        for (int u = 0; u < n; u++) {
            if (dp[mask][u] != inf) continue;
            // compute dp[mask][u]
            if (!((1 << u) & mask)) continue;
            for (int v = 0; v < n; v++) {
                if (!((1 << v) & mask)) continue;
                dp[mask][u] = min(dp[mask][u], dp[(mask^(1 << u))][v] + max(0, t[v] - s[u]));
            }
        }
    }
    return *min_element(dp[(1 << n) - 1], dp[(1 << n) - 1] + n);
}
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…