제출 #1262511

#제출 시각아이디문제언어결과실행 시간메모리
1262511kawhiet경주 (Race) (IOI11_race)C++20
0 / 100
0 ms320 KiB
#include <bits/stdc++.h> #include "race.h" using namespace std; vector<vector<pair<int, int>>> g; vector<vector<int>> dp; int k; void dfs(int u, int p) { dp[u][0] = 0; for (auto [v, w] : g[u]) { if (v == p) continue; dfs(v, u); for (int i = 0; i <= k; i++) { dp[u][i] = min(dp[u][i], dp[v][i]); } for (int i = 0; i + w <= k; i++) { dp[u][i + w] = min(dp[u][i + w], dp[v][i] + 1); } } } int best_path(int N, int K, int H[][2], int L[]) { k = K; g.resize(N); dp.resize(N, vector<int>(K + 1, N + 1)); for (int i = 0; i < N; i++) { int u = H[i][0], v = H[i][1], w = L[i]; g[u].push_back({v, w}); g[v].push_back({u, w}); } dfs(0, -1); return (dp[0][k] == N + 1 ? -1 : dp[0][k]); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...