CCF GESP 2026年9月认证 C++ 8级

所有 GESP 真题,手机上也能刷 · 自动判分 · 错题自动进错题本 扫码去刷
三 编程题
共 2 道 每题 25 分 共计 50 分
第 1 题
生成树计数
时间限制:1s 内存限制:512MB

题目描述

给定一张有 $n$ 个顶点 $m$ 条边的无向连通图 $G$,顶点依次以 $1,2,…,n$ 编号。$G$ 有以下特殊的性质:

  • $G$ 中的每条边至多属于一个简单环。
  • $G$ 中没有重边与自环。

简单环是指环中顶点互不相同,且不经过重复边的回路。

请你求出 $G$ 的不同生成树的数量。两棵生成树不同,当且仅当存在一条边在其中一棵生成树中出现,而不在另一棵生成树中出现。

由于答案可能很大,你只要求出答案对 $998244353$ 取模的结果。

输入格式

第一行,两个正整数 $n,m$,分别表示 $G$ 的顶点数与边数。

接下来 $m$ 行,每行两个整数 $u_{i},v_{i}$,表示一条连接顶点 $u_{i},v_{i}$ 的无向边。

输出格式

输出一行,一个整数,表示 $G$ 的不同生成树的数量对 $998244353$ 取模的结果。

样例说明

样例 1

输入:
7 8
1 2
2 3
3 1
3 4
4 5
5 6
6 7
7 4
输出:
12

样例 2

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

数据范围

对于 40% 的测试点,保证 $1≤n≤8$,$1≤m≤10$。

对于 60% 的测试点,保证 $1≤n≤2000$,$1≤m≤2000$。

对于所有测试点,保证 $1≤n≤10^{5}$,$1≤m≤10^{5}$,$1≤u_{i},v_{i}≤n$。

第 2 题
末班车
时间限制:1s 内存限制:512MB

题目描述

城市里有 $n$ 个地铁站以及 $m$ 条地铁线路,地铁站依次以 $1,2,…,n$ 编号。

第 $i$ 条地铁线路($1≤i≤m$)的列车从地铁站 $u_{i}$ 单向驶向地铁站 $v_{i}$,最晚发车时间为第 $l_{i}$ 分钟,途中行驶需要 $t_{i}$ 分钟。从第 $0$ 分钟到第 $l_{i}$ 分钟,每分钟都会有一班列车从地铁站 $u_{i}$ 发出。第 $x$ 分钟($0≤x≤l_{i}$)发出的列车会在第 $x+t_{i}$ 分钟到达地铁站 $v_{i}$,乘坐这班列车的乘客可以换乘第 $x+t_{i}$ 分钟以及之后的所有从地铁站 $v_{i}$ 发出的任意线路的列车。

现在有 $q$ 组询问。第 $i$ 组询问($1≤i≤q$)给出起点地铁站编号 $x_{i}$,终点地铁站编号 $y_{i}$ 以及出发时间 $s_{i}$,你需要判断第 $s_{i}$ 分钟从地铁站 $x_{i}$ 出发是否能到达地铁站 $y_{i}$。第 $s_{i}$ 分钟从地铁站 $x_{i}$ 出发意味着你可以乘坐第 $s_{i}$ 分钟以及之后的所有从地铁站 $x_{i}$ 发出的任意线路的列车。

输入格式

第一行,三个正整数 $n,m,q$,分别表示地铁站数量,地铁线路数量,询问数量。

接下来 $m$ 行,每行四个整数 $u_{i},v_{i},l_{i},t_{i}$,分别表示地铁线路的起点,终点,最晚发车时间,行驶所需时间。

接下来 $q$ 行,每行三个整数 $x_{i},y_{i},s_{i}$,分别表示行程起点,行程终点,出发时间。

输出格式

输出共 $q$ 行。对于每组询问,如果第 $s_{i}$ 分钟从地铁站 $x_{i}$ 出发能到达地铁站 $y_{i}$ 则输出一行 Yes,否则输出一行 No。请注意输出区分大小写。

样例说明

样例 1

输入:
3 4 5
1 2 3 3
2 3 5 2
3 1 4 1
1 3 0 6
1 3 2
2 1 2
2 1 3
3 2 2
3 2 3
输出:
Yes
Yes
No
Yes
No

数据范围

对于 40% 的测试点,保证 $q≤100$。

对于所有测试点,保证:

  • $1≤n≤500$
  • $1≤m≤1000$
  • $1≤q≤5×10^{5}$
  • $1≤u_{i},v_{i},x_{i},y_{i}≤n$
  • $0≤l_{i},s_{i}≤10^{5}$
  • $1≤t_{i}≤10^{4}$
编程题部分已到底了。

小程序开心码未来

微信扫码,随时随地练 GESP 真题

  • 手机刷题 · 自动判分,错题自动归档到错题本
  • 绑定网站账号后,查看答案解析等权限自动同步
开心码未来小程序二维码(微信扫一扫) 微信扫一扫