5000
1333 1
1333 2
1333 3
1333 4
1333 5
1333 6
1333 7
1333 8
1333 9
1333 10
1333 11
1333
<53788 bytes omitted>
用户输出
24975004
系统信息
Exited with return code 0
编号 | 题目 | 状态 | 分数 | 总时间 | 内存 | 代码 / 答案文件 | 提交者 | 提交时间 |
---|---|---|---|---|---|---|---|---|
#24206 | #1144. ddd和猴子 | Accepted | 100 | 723 ms | 117948 K | C++ 11 / 1.5 K | Rhodoks | 2020-04-17 23:09:39 |
#include <bits/stdc++.h>
#define DB double
#define LL long long
#define MST(a, b) memset((a), (b), sizeof(a))
#define MRK() cout << "Mark" << endl;
#define WRT(x) cout << #x << " = " << (x) << endl;
#define MAXN 5010
#define MAXM 410000
#define MOD 998244353
#define INF 0x3f3f3f3f
#define LLINF 0x3f3f3f3f3f3f3f3f
#define EPS 1e-5
#define _ 0
using namespace std;
vector<int> g[MAXN];
int pool[MAXN][MAXN << 1];
int *dp[MAXN];
int n;
int col[MAXN], size[MAXN];
void init() {
int x, y;
cin >> n;
for (int i = 1; i < n; i++) {
scanf("%d%d", &x, &y);
g[x].push_back(y);
g[y].push_back(x);
}
for (int i = 1; i <= n; i++) dp[i] = pool[i] + MAXN;
col[1] = -1;
}
void dfs(int pos, int f) {
col[pos] = -col[f];
for (auto p : g[pos])
if (p != f) {
dfs(p, pos);
size[pos] += size[p];
}
}
void clear(int *p, int n) {
for (int i = -n; i <= n; i++) p[i] = -INF;
}
int tpool[MAXN << 1];
int *tmp = tpool + MAXN;
void work(int pos, int f) {
int mx = -INF;
size[pos] = 1;
clear(dp[pos], size[pos]);
dp[pos][col[pos]] = 0;
for (auto p : g[pos])
if (p != f) {
work(p, pos);
clear(tmp, size[pos] + size[p]);
for (int i = -size[pos]; i <= size[pos]; i++)
for (int j = -size[p]; j <= size[p]; j++) tmp[i + j] = max(tmp[i + j], dp[pos][i] + dp[p][j]);
size[pos] += size[p];
for (int i = -size[pos]; i <= size[pos]; i++) dp[pos][i] = tmp[i];
}
for (int i = -size[pos]; i <= size[pos]; i++) dp[pos][0] = max(dp[pos][0], dp[pos][i] + i * i);
}
int main() {
init();
dfs(1, 1);
work(1, 1);
cout << (dp[1][0] - n);
return ~~(0 ^ _ ^ 0);
}
5000
1333 1
1333 2
1333 3
1333 4
1333 5
1333 6
1333 7
1333 8
1333 9
1333 10
1333 11
1333
<53788 bytes omitted>
用户输出
24975004
系统信息
Exited with return code 0
5000
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
9 10
10 11
11 12
12 13
13 14
14 15
15 16
16 17
<52684 bytes omitted>
用户输出
0
系统信息
Exited with return code 0
5000
1 2
1 3
2 4
2 5
3 6
3 7
4 8
4 9
5 10
5 11
6 12
6 13
7 14
7 15
8 16
8 17
9 18
<51577 bytes omitted>
用户输出
1859130
系统信息
Exited with return code 0
5000
1 4514
2 4514
3 4514
4 4514
5 4514
6 4514
7 4514
8 4514
9 4514
10 4514
11 4514
12 4
<52679 bytes omitted>
用户输出
16339208
系统信息
Exited with return code 0
5000
1 1926
2 1926
3 1926
4 1926
5 1926
6 1926
7 1926
8 1926
9 1926
10 1926
11 1926
12 1
<52679 bytes omitted>
用户输出
15112652
系统信息
Exited with return code 0
5000
2 1
3 1
4 3
5 3
6 5
7 5
8 3
9 1
10 7
11 2
12 5
13 6
14 8
15 13
16 13
17 7
18 8
<50535 bytes omitted>
用户输出
1697850
系统信息
Exited with return code 0
5000
2 1
3 1
4 3
5 4
6 3
7 1
8 4
9 1
10 8
11 7
12 9
13 7
14 8
15 11
16 4
17 1
18 5
<50582 bytes omitted>
用户输出
1766244
系统信息
Exited with return code 0
5000
2 1
3 1
4 3
5 4
6 2
7 6
8 6
9 7
10 1
11 7
12 10
13 1
14 8
15 2
16 7
17 13
18 1
<50545 bytes omitted>
用户输出
1817208
系统信息
Exited with return code 0