Submission #848279

# Submission time Handle Problem Language Result Execution time Memory
848279 2023-09-12T00:39:06 Z wakandaaa Museum (CEOI17_museum) C++17
100 / 100
266 ms 785488 KB
#include <bits/stdc++.h>
#define fi first
#define se second
#define all(x) x.begin(), x.end()
#define getbit(x, i) (((x) >> (i)) & 1)
#define bit(x) (1 << (x))
#define file ""
using namespace std;
 
mt19937_64 rd(chrono::steady_clock::now().time_since_epoch().count());
long long rand(long long l, long long r) {
    return l + rd() % (r - l + 1);
}
 
const int N = 1e4 + 5;
const int mod = 1e9 + 7; // 998244353;
const int inf = INT_MAX;
const long long llinf = LLONG_MAX;
const int lg = 25; // lg + 1
 
template<class X, class Y> bool minimize(X &a, Y b) {
    return a > b ? (a = b, true) : false;
}
template<class X, class Y> bool maximize(X &a, Y b) {
    return a < b ? (a = b, true) : false;
}
template<class X, class Y> bool add(X &a, Y b) {
    a += b;
    while (a >= mod) a -= mod;
    while (a < 0) a += mod;
    return true;
}
 
int n, k, x;
vector<pair<int, int> > adj[N];
int sz[N];
int f[N][N][2];
 
void dfs(int u, int p) {
	sz[u] = 1;
	f[u][1][0] = f[u][1][1] = 0;
 
	for (auto [v, c] : adj[u]) if (v != p) {
		dfs(v, u);
		for (int i = min(k, sz[u]); i >= 0; --i)
			for (int j = min(k, sz[v]); j >= 0; --j) if (i + j <= k) {
				minimize(f[u][i + j][0], f[u][i][0] + f[v][j][0] + c * 2);
				minimize(f[u][i + j][1], f[u][i][1] + f[v][j][0] + c * 2);
				minimize(f[u][i + j][1], f[u][i][0] + f[v][j][1] + c);
			}
		sz[u] += sz[v];
	}
}
 
int main() {
    ios::sync_with_stdio(false);
    cin.tie(0);
 
    // freopen(file".inp", "r",stdin);
    // freopen(file".out", "w",stdout);
 
    cin >> n >> k >> x;
    for (int i = 1; i < n; ++i) {
    	int u, v, c;
    	cin >> u >> v >> c;
    	adj[u].emplace_back(v, c);
    	adj[v].emplace_back(u, c);
    }
 
    memset(f, 0x3f, sizeof f);
 
    dfs(x, 0);
 
    cout << f[x][k][1];
    
    return 0;
}
# Verdict Execution time Memory Grader output
1 Correct 102 ms 784212 KB Output is correct
2 Correct 86 ms 784208 KB Output is correct
3 Correct 85 ms 784208 KB Output is correct
4 Correct 90 ms 784204 KB Output is correct
5 Correct 86 ms 783992 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 98 ms 784976 KB Output is correct
2 Correct 94 ms 784716 KB Output is correct
3 Correct 94 ms 785072 KB Output is correct
4 Correct 97 ms 784932 KB Output is correct
5 Correct 93 ms 784760 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 98 ms 784976 KB Output is correct
2 Correct 94 ms 784716 KB Output is correct
3 Correct 94 ms 785072 KB Output is correct
4 Correct 97 ms 784932 KB Output is correct
5 Correct 93 ms 784760 KB Output is correct
6 Correct 97 ms 784592 KB Output is correct
7 Correct 94 ms 784840 KB Output is correct
8 Correct 94 ms 784720 KB Output is correct
9 Correct 92 ms 784720 KB Output is correct
10 Correct 94 ms 784720 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 102 ms 784212 KB Output is correct
2 Correct 86 ms 784208 KB Output is correct
3 Correct 85 ms 784208 KB Output is correct
4 Correct 90 ms 784204 KB Output is correct
5 Correct 86 ms 783992 KB Output is correct
6 Correct 98 ms 784976 KB Output is correct
7 Correct 94 ms 784716 KB Output is correct
8 Correct 94 ms 785072 KB Output is correct
9 Correct 97 ms 784932 KB Output is correct
10 Correct 93 ms 784760 KB Output is correct
11 Correct 97 ms 784592 KB Output is correct
12 Correct 94 ms 784840 KB Output is correct
13 Correct 94 ms 784720 KB Output is correct
14 Correct 92 ms 784720 KB Output is correct
15 Correct 94 ms 784720 KB Output is correct
16 Correct 113 ms 784720 KB Output is correct
17 Correct 154 ms 784756 KB Output is correct
18 Correct 116 ms 785084 KB Output is correct
19 Correct 124 ms 784820 KB Output is correct
20 Correct 109 ms 784720 KB Output is correct
21 Correct 207 ms 784980 KB Output is correct
22 Correct 181 ms 784720 KB Output is correct
23 Correct 266 ms 784820 KB Output is correct
24 Correct 176 ms 784720 KB Output is correct
25 Correct 219 ms 785488 KB Output is correct