Submission #1153125

#TimeUsernameProblemLanguageResultExecution timeMemory
1153125TroySerCyberland (APIO23_cyberland)C++20
0 / 100
962 ms2162688 KiB
#include <bits/stdc++.h> #include "cyberland.h" #include <vector> using namespace std; using ll = long long; const ll INF = 1e18; vector<vector<ll> > adjList; vector<vector<ll> > weightMat; vector<vector<double> > memo; vector<vector<bool> > visited; double DP(ll currentNode, ll numSpecialsLeft, ll N) { // cout << currentNode << " " << numSpecialsLeft << endl; if (numSpecialsLeft < 0) { return (double)INF; } if (currentNode == N - 1) { return 0.0; } if (visited[currentNode][numSpecialsLeft]) { return memo[currentNode][numSpecialsLeft]; } visited[currentNode][numSpecialsLeft] = true; double minPossible = (double)INF; for (ll v: adjList[currentNode]) { // currentNode -> v minPossible = min(minPossible, DP(v, numSpecialsLeft, N) + (double)weightMat[currentNode][v]); } return memo[currentNode][numSpecialsLeft] = minPossible; } double solve(int N, int M, int K, int H, vector<int> x, vector<int> y, vector<int> c, vector<int> arr) { adjList.clear(); weightMat.clear(); adjList.resize(N); weightMat.resize(N, vector<ll>(N, INF)); for (ll i = 0; i < M; i++) { adjList[x[i]].push_back(y[i]); adjList[y[i]].push_back(x[i]); weightMat[x[i]][y[i]] = c[i]; weightMat[y[i]][x[i]] = c[i]; } visited.clear(); memo.clear(); visited.resize(N, vector<bool>(N, false)); memo.resize(N, vector<double>(K + 1, INF)); double response = DP(0, K, N); if (response >= INF) { return -1.0; } else { return response; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...