Submission #155711

#TimeUTC-0UsernameProblemLanguageResultExecution timeMemory
1557112019-09-30 03:26:57FischerMuseum (CEOI17_museum)C++14
80 / 100
3085 ms784760 KiB
#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e4 + 2;
struct Node {
int v, w;
};
vector<Node> g[maxn];
int n, k, x;
int sz[maxn];
int memo[maxn][maxn][2];
void dfs(int x, int p) {
sz[x] = 1;
for (auto node : g[x]) {
if (node.v == p) continue;
dfs(node.v, x);
sz[x] += sz[node.v];
}
memo[x][1][0] = memo[x][1][1] = 0;
for (auto node : g[x]) {
if (node.v == p) continue;
for (int i = min(sz[x], k); i >= 2; --i) {
for (int j = min(sz[node.v], i-1); j >= 1; --j) {
memo[x][i][1] = min(memo[x][i][1],
min(
memo[x][i-j][1] + memo[node.v][j][0] + (node.w<<1),
memo[x][i-j][0] + memo[node.v][j][1] + node.w
));
memo[x][i][0] = min(memo[x][i][0],
memo[x][i-j][0] + memo[node.v][j][0] + (node.w<<1));
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...