# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
242283 | 2020-06-27T08:07:24 Z | shenxy | Magic Tree (CEOI19_magictree) | C++11 | 1182 ms | 792164 KB |
#include <cstdio> #include <algorithm> #include <vector> #include <cstring> #include <map> using namespace std; typedef pair<int, int> ii; int n, m, k, d[100000]; long long dpt1[100000][22], w[100000]; vector<int> adjlist[100000]; long long dp1(int v, int x) { if (dpt1[v][x] != -1) return dpt1[v][x]; if (x == 0) return dpt1[v][x] = 0; dpt1[v][x] = (d[v] == x ? w[v] : 0); for (int i: adjlist[v]) dpt1[v][x] += dp1(i, x); return dpt1[v][x] = max(dpt1[v][x], dp1(v, x - 1)); } int cnt = 1; map<int, ii> mp; vector<int> adjlist2[1001]; void dfs(int v, int p) { d[0] = w[0] = 0; if (mp.find(v) != mp.end()) { d[cnt] = mp[v].first; w[cnt] = mp[v].second; adjlist2[p].push_back(cnt); p = cnt; ++cnt; } for (int i: adjlist[v]) dfs(i, p); } long long dpt2[1001][100002]; inline void dp2() { for (int i = 0; i <= k + 1; ++i) { for (int j = cnt - 1; j >= 0; --j) { if (i == 0) dpt2[j][i] = 0; else { dpt2[j][i] = (d[j] == i ? w[j] : 0); for (int k: adjlist2[j]) dpt2[j][i] += dpt2[k][i]; dpt2[j][i] = max(dpt2[j][i], dpt2[j][i - 1]); } } } } int main() { scanf("%d %d %d", &n, &m, &k); if (k <= 20) { int p, v, D, W; for (int i = 1; i < n; ++i) { scanf("%d", &p); adjlist[p - 1].push_back(i); } fill_n(d, 100000, 0); fill_n(w, 100000, 0); for (int i = 0; i < m; ++i) { scanf("%d %d %d", &v, &D, &W); d[v - 1] = D; w[v - 1] = W; } memset(dpt1, -1, sizeof dpt1); printf("%lld", dp1(0, k + 1)); } else if (m <= 1000) { int p, v, d, w; for (int i = 1; i < n; ++i) { scanf("%d", &p); adjlist[p - 1].push_back(i); } for (int i = 0; i < m; ++i) { scanf("%d %d %d", &v, &d, &w); mp[v - 1] = ii(d, w); } dfs(0, 0); dp2(); printf("%lld", dpt2[0][k + 1]); } else { for (int i = 1; i < n; ++i) scanf("%d", &k); int v, d, w; long long ans = 0; for (int i = 0; i < m; ++i) { scanf("%d %d %d", &v, &d, &w); ans += w; } printf("%lld", ans); } return 0; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 17 ms | 21248 KB | Output is correct |
2 | Correct | 15 ms | 21120 KB | Output is correct |
3 | Correct | 15 ms | 21120 KB | Output is correct |
4 | Correct | 15 ms | 21120 KB | Output is correct |
5 | Correct | 16 ms | 21120 KB | Output is correct |
6 | Correct | 18 ms | 21120 KB | Output is correct |
7 | Correct | 17 ms | 21120 KB | Output is correct |
8 | Correct | 16 ms | 21120 KB | Output is correct |
9 | Correct | 15 ms | 21120 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 29 ms | 2688 KB | Output is correct |
2 | Correct | 25 ms | 2688 KB | Output is correct |
3 | Correct | 56 ms | 2688 KB | Output is correct |
4 | Correct | 54 ms | 2808 KB | Output is correct |
5 | Correct | 55 ms | 2688 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 12 ms | 9472 KB | Output is correct |
2 | Correct | 13 ms | 9472 KB | Output is correct |
3 | Correct | 12 ms | 9472 KB | Output is correct |
4 | Incorrect | 48 ms | 2688 KB | Output isn't correct |
5 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 96 ms | 22648 KB | Output is correct |
2 | Correct | 96 ms | 22648 KB | Output is correct |
3 | Correct | 88 ms | 26744 KB | Output is correct |
4 | Correct | 66 ms | 21616 KB | Output is correct |
5 | Correct | 79 ms | 31992 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 17 ms | 21248 KB | Output is correct |
2 | Correct | 15 ms | 21120 KB | Output is correct |
3 | Correct | 15 ms | 21120 KB | Output is correct |
4 | Correct | 15 ms | 21120 KB | Output is correct |
5 | Correct | 16 ms | 21120 KB | Output is correct |
6 | Correct | 18 ms | 21120 KB | Output is correct |
7 | Correct | 17 ms | 21120 KB | Output is correct |
8 | Correct | 16 ms | 21120 KB | Output is correct |
9 | Correct | 15 ms | 21120 KB | Output is correct |
10 | Correct | 124 ms | 22740 KB | Output is correct |
11 | Correct | 111 ms | 22776 KB | Output is correct |
12 | Correct | 105 ms | 26872 KB | Output is correct |
13 | Correct | 97 ms | 21616 KB | Output is correct |
14 | Correct | 94 ms | 31992 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 462 ms | 383092 KB | Output is correct |
2 | Correct | 471 ms | 370076 KB | Output is correct |
3 | Correct | 607 ms | 550776 KB | Output is correct |
4 | Correct | 1081 ms | 714360 KB | Output is correct |
5 | Correct | 1136 ms | 786928 KB | Output is correct |
6 | Correct | 1182 ms | 789068 KB | Output is correct |
7 | Correct | 1153 ms | 792164 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 17 ms | 21248 KB | Output is correct |
2 | Correct | 15 ms | 21120 KB | Output is correct |
3 | Correct | 15 ms | 21120 KB | Output is correct |
4 | Correct | 15 ms | 21120 KB | Output is correct |
5 | Correct | 16 ms | 21120 KB | Output is correct |
6 | Correct | 18 ms | 21120 KB | Output is correct |
7 | Correct | 17 ms | 21120 KB | Output is correct |
8 | Correct | 16 ms | 21120 KB | Output is correct |
9 | Correct | 15 ms | 21120 KB | Output is correct |
10 | Correct | 12 ms | 9472 KB | Output is correct |
11 | Correct | 13 ms | 9472 KB | Output is correct |
12 | Correct | 12 ms | 9472 KB | Output is correct |
13 | Incorrect | 48 ms | 2688 KB | Output isn't correct |
14 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 17 ms | 21248 KB | Output is correct |
2 | Correct | 15 ms | 21120 KB | Output is correct |
3 | Correct | 15 ms | 21120 KB | Output is correct |
4 | Correct | 15 ms | 21120 KB | Output is correct |
5 | Correct | 16 ms | 21120 KB | Output is correct |
6 | Correct | 18 ms | 21120 KB | Output is correct |
7 | Correct | 17 ms | 21120 KB | Output is correct |
8 | Correct | 16 ms | 21120 KB | Output is correct |
9 | Correct | 15 ms | 21120 KB | Output is correct |
10 | Correct | 29 ms | 2688 KB | Output is correct |
11 | Correct | 25 ms | 2688 KB | Output is correct |
12 | Correct | 56 ms | 2688 KB | Output is correct |
13 | Correct | 54 ms | 2808 KB | Output is correct |
14 | Correct | 55 ms | 2688 KB | Output is correct |
15 | Correct | 12 ms | 9472 KB | Output is correct |
16 | Correct | 13 ms | 9472 KB | Output is correct |
17 | Correct | 12 ms | 9472 KB | Output is correct |
18 | Incorrect | 48 ms | 2688 KB | Output isn't correct |
19 | Halted | 0 ms | 0 KB | - |