CCF GESP 2025年3月认证 C++ 6级
题目描述
小 A 有一棵 $n$ 个结点的树,这些结点依次以 $1,2,\cdots,n$ 标号。
小 A 想在这棵树上漫步。具体来说,小 A 会从树上的某个结点出发,每一步可以移动到与当前结点相邻的结点,并且小 A 只会在偶数步(可以是零步)后结束漫步。
现在小 A 想知道,对于树上的每个结点,从这个结点出发开始漫步,经过偶数步能结束漫步的结点有多少个(可以经过重复的节点)。
输入格式
第一行,一个正整数 $n$。
接下来 $n-1$ 行,每行两个整数 $u_i,v_i$,表示树上有⼀条连接结点 $u_i$ 和结点 $v_i$ 的边。
输出格式
一行,$n$ 个整数。第 $i$ 个整数表示从结点 $i$ 出发开始漫步,能结束漫步的结点数量。
样例说明
样例 1
3
1 3
2 3
2 2 1
样例 2
4
1 3
3 2
4 3
3 3 1 3
数据范围
对于 $40\%$ 的测试点,保证 $1\leq n\leq 10^3$。
对于所有测试点,保证 $1\leq n\leq 2\times 10^5$。
题目描述
小 A 喜欢坐地铁。地铁环线有 $n$ 个车站,依次以 $1,2,\cdots,n$ 标号。车站 $i\ (1\leq i<n)$ 的下一个车站是车站 $i+1$。特殊地,车站 $n$ 的下一个车站是车站 $1$。
小 A 会从某个车站出发,乘坐地铁环线到某个车站结束行程,这意味着小 A 至少会经过一个车站。小 A 不会经过一个车站多次。当小 A 乘坐地铁环线经过车站 $i$ 时,小 A 会获得 $a_i$ 点快乐值。请你安排小 A 的行程,选择出发车站与结束车站,使得获得的快乐值总和最大。
输入格式
第一行,一个正整数 $n$,表示车站的数量。
第二行,$n$ 个整数 $a_1,a_2,...,a_n$,分别表示经过每个车站时获得的快乐值。
输出格式
一行,一个整数,表示小 A 能获得的最大快乐值。
样例说明
样例 1
4
-1 2 3 0
5
样例 2
5
-3 4 -5 1 3
5
数据范围
对于 $20\%$ 的测试点,保证 $1\leq n\leq 200$。
对于 $40\%$ 的测试点,保证 $1\leq n\leq 2000$。
对于所有测试点,保证 $1\leq n\leq 2\times 10^5$,$-10^9\leq a_i\leq 10^9$。