CCF GESP 2026年6月认证 C++ 7级

编程题
共 2 道 每题 25 分 共计 50 分
第 1 题
染色
时间限制:1s 内存限制:512MB

题目描述

小杨同学有一张包含 $n$ 个结点的无向图 $G$, $G$ 中的结点依次以 $1,2,…,n$ 编号。

小杨同学发现 $G$ 中每个结点的度数都是 2。显然 $G$ 中恰好有 $n$ 条边。

小杨同学想为 $G$ 中的结点染色,使得任意一条边两端的结点都有不同的颜色。

小杨同学想知道最少需要多少种颜色才能在满足条件的前提下为 $G$ 染色。

输入格式

本题包含多组数据。

第一行,一个正整数 $t$,表示数据组数。

对于每组数据:

第一行,一个正整数 $n$,表示无向图 $G$ 中的结点数。

接下来 $n$ 行,每行两个正整数 $u_{i},v_{i}$,表示一条连接结点 $u_{i}$ 与 $v_{i}$ 的无向边,整数之间以空格分隔。

保证 $G$ 中没有重边与自环。

输出格式

对于每组数据:输出一行,一个整数,表示在满足条件的前提下为 $G$ 染色需要的最少颜色数。

样例说明

样例 1

输入:
4
6
1 6
2 1
3 2
4 3
5 4
6 5
6
1 3
3 5
5 1
2 4
4 6
6 2
3
1 2
2 3
3 1
5
1 4
2 5
3 1
4 2
5 3
输出:
2
3
3
3

数据范围

对于 40% 的测试点,保证 $∑n≤500$,$∑n$ 指每个输入中多组数据的 $n$ 的总和。

对于所有测试点,保证 $1≤t≤100$,$3≤n≤10^{5}$,$∑n≤10^{5}$。保证 $G$ 中没有重边与自环。

第 2 题
消消乐
时间限制:1s 内存限制:512MB

题目描述

给定一个由 $n$ 个整数构成的数组 $a=[a_{1},…,a_{n}]$。每次你可以对数组 $a$ 进行以下操作,直到数组 $a$ 变为空:

  • 指定 $a$ 中的一个元素,获得该元素两侧相邻元素之和的分数,并将该元素从 $a$ 中删去。

特别地,如果相邻元素不存在则该元素的值视为 0。例如,对于 $a=[1,2,3]$ 可以进行以下操作:

  • 指定元素 2,获得分数 1+3,删去 2 后 $a=[1,3]$;
  • 指定元素 1,获得分数 0+3,删去 1 后 $a=[3]$;
  • 指定元素 3,获得分数 0+0,删去 3 后 $a$ 变为空。

请问你能获得的分数总和最大是多少?

输入格式

第一行,一个正整数 $n$,表示数组长度。

第二行,$n$ 个非负整数 $a_{1},…,a_{n}$,表示数组 $a$ 中的整数。

输出格式

输出一行,一个整数,表示能获得的最大分数总和。

样例说明

样例 1

输入:
6
1 6 3 2 9 1
输出:
55

样例 2

输入:
5
3 1415 926 53 58
输出:
5771

数据范围

对于 40% 的测试点,保证 $1≤n≤50$,$0≤a_{i}≤10^{3}$。

对于所有测试点,保证 $1≤n≤100$,$0≤a_{i}≤10^{9}$。

编程题部分已到底了。