제출 #1320920

#제출 시각아이디문제언어결과실행 시간메모리
1320920tkm_algorithms악어의 지하 도시 (IOI11_crocodile)C++20
46 / 100
188 ms327680 KiB
#include "crocodile.h" #include <bits/stdc++.h> using namespace std; using ll = long long; //#define int ll //using P = pair<int, int>; #define all(x) x.begin(), x.end() #define rep(i, l, n) for (int i = l; i < (n); ++i) #define sz(x) (int)x.size() const char nl = '\n'; const int mod = 1e9+7; const int NMAX = 1010; const int inf = 1e9+10; void solve() { } vector<pair<int, int>> g[NMAX]; bool specific[NMAX]; int dp[NMAX]; void dfs(int node, int par) { if (specific[node])dp[node] = 0; int mn = inf, mn2 = inf; for (auto [son, weight]: g[node]) { if (son == par)continue; dfs(son, node); if (dp[son]+weight < mn)mn2 = mn, mn = dp[son]+weight; else mn2 = min(mn2, dp[son]+weight); } dp[node] = min(dp[node], mn2); } int travel_plan(int N, int M, int R[][2], int L[], int K, int P[]) { memset(specific, false, sizeof specific); rep(i, 0, M) g[R[i][0]].push_back({R[i][1], L[i]}), g[R[i][1]].push_back({R[i][0], L[i]}); rep(i, 0, N)dp[i] = inf; rep(i, 0, K)specific[P[i]] = 1; dfs(0, 0); return dp[0]; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...