编号 题目 状态 分数 总时间 内存 代码 / 答案文件 提交者 提交时间
#24239 #1144. ddd和猴子 Accepted 100 442 ms 118144 K C++ 17 / 1.3 K YangDavid 2020-04-23 1:00:42
显示原始代码
/*
 * Author       : YangDavid
 * Created Time : 2020年04月23日 星期四 00时41分05秒
 */

#include <bits/stdc++.h>
#define rep(i, n) for (int i = 1; i <= n; ++i)
using namespace std;
const int MAXN = 5050, NEG = 0xcfcfcfcf;
vector<int> G[MAXN];
int n, pool[MAXN][MAXN * 2], *dp[MAXN], *can = pool[5030] + MAXN, sz[MAXN];

void upd(int &x, int y) {
    if (x < y)
        x = y;
}
void dfs(int v, int fa, int cw) {
    sz[v] = 1;
    dp[v][cw] = 0;
    dp[v][0] = dp[v][-cw] = NEG;
    for (auto g : G[v])
        if (g != fa) {
            dfs(g, v, -cw);
            for (int i = -sz[v] - sz[g]; i <= sz[v] + sz[g]; ++i) can[i] = NEG;
            for (int i = -sz[v]; i <= sz[v]; ++i)
                if (dp[v][i] > NEG)
                    for (int j = -sz[g]; j <= sz[g]; ++j)
                        if (dp[g][j] > NEG)
                            upd(can[i + j], dp[v][i] + dp[g][j]);
            for (int i = -sz[v] - sz[g]; i <= sz[v] + sz[g]; ++i) dp[v][i] = can[i];
            sz[v] += sz[g];
        }
    for (int i = -sz[v]; i <= sz[v]; ++i) upd(dp[v][0], dp[v][i] + i * i);
}

int main() {
    scanf("%d", &n);
    rep(i, n) dp[i] = pool[i] + MAXN;
    for (int i = 1; i < n; ++i) {
        static int x, y;
        scanf("%d%d", &x, &y);
        G[x].push_back(y);
        G[y].push_back(x);
    }
    dfs(1, -1, 1);
    printf("%d\n", dp[1][0] - n);

    return 0;
}
子任务 #1
Accepted
得分:100
测试点 #1
Accepted
得分:100
用时:84 ms
内存:20944 KiB

输入文件(1.in

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>

答案文件(1.out

24975004

用户输出

24975004

系统信息

Exited with return code 0
测试点 #2
Accepted
得分:100
用时:121 ms
内存:118144 KiB

输入文件(2.in

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>

答案文件(2.out

0

用户输出

0

系统信息

Exited with return code 0
测试点 #3
Accepted
得分:100
用时:21 ms
内存:21348 KiB

输入文件(3.in

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>

答案文件(3.out

1859130

用户输出

1859130

系统信息

Exited with return code 0
测试点 #4
Accepted
得分:100
用时:63 ms
内存:21056 KiB

输入文件(4.in

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>

答案文件(4.out

16339208

用户输出

16339208

系统信息

Exited with return code 0
测试点 #5
Accepted
得分:100
用时:53 ms
内存:21088 KiB

输入文件(5.in

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>

答案文件(5.out

15112652

用户输出

15112652

系统信息

Exited with return code 0
测试点 #6
Accepted
得分:100
用时:3 ms
内存:352 KiB

输入文件(6.in

1

答案文件(6.out

0

用户输出

0

系统信息

Exited with return code 0
测试点 #7
Accepted
得分:100
用时:23 ms
内存:21312 KiB

输入文件(7.in

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>

答案文件(7.out

1697850

用户输出

1697850

系统信息

Exited with return code 0
测试点 #8
Accepted
得分:100
用时:28 ms
内存:21200 KiB

输入文件(8.in

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>

答案文件(8.out

1766244

用户输出

1766244

系统信息

Exited with return code 0
测试点 #9
Accepted
得分:100
用时:23 ms
内存:21308 KiB

输入文件(9.in

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>

答案文件(9.out

1817208

用户输出

1817208

系统信息

Exited with return code 0
测试点 #10
Accepted
得分:100
用时:23 ms
内存:21180 KiB

输入文件(10.in

5000
2 1
3 1
4 3
5 2
6 3
7 5
8 3
9 1
10 1
11 6
12 6
13 1
14 4
15 5
16 9
17 7
18 2

<50623 bytes omitted>

答案文件(10.out

1646206

用户输出

1646206

系统信息

Exited with return code 0