HEOI2024 题目转存
赛时测试数据下载
题解参考
[省选联考 2024] 季风
题目背景
生活在二维平面的小 X 准备拜访小 Y,但由于气候的变化,平面上刮起了季风。小 X 想知道季风的影响下,TA 至少要多少天能够到达小 Y 的家,但小 X 也是第一次遇见这种怪事,所以请精通算法的你来帮忙。
题目描述
给定
找到最小的非负整数
; ; 。
特别地,
输入格式
本题有多组测试数据。输入的第一行一个整数
对于每组测试数据,
- 第一行四个整数
; - 接下来
行,第 行两个整数 。
输出格式
对于每组测试数据输出一行一个整数,如果存在满足题意的
样例 #1
样例输入 #1
4
1 2 2 2
1 1
1 2 -2 -2
1 1
1 2 0 0
1 1
2 100000000 100000000 100000000
-99999999 0
-100000000 0
样例输出 #1
1
-1
0
399999999
提示
【样例 1 解释】
该组样例共有四组测试数据。
- 对于第一组测试数据,取
, 满足条件,可以证明不存在更小的 满足条件; - 对于第二组测试数据,可以证明不存在任何非负整数
满足条件; - 对于第三组测试数据,取
满足条件,可以证明不存在更小的 满足条件。
【样例 2】
见附件中的 wind2.in/ans
。
该组样例共有八十组测试数据,所有测试数据均满足
【样例 3】
见附件中的 wind3.in/ans
。
该组样例共有六十组测试数据,所有测试数据均满足
【子任务】
设
; , ; 。
测试点编号 | 特殊性质 | ||
---|---|---|---|
A | |||
B | |||
C | |||
无 | |||
A | |||
B | |||
无 | |||
A | |||
B | |||
无 |
- 特殊性质 A:
, ; - 特殊性质 B:
; - 特殊性质 C:
。
【提示】
本题输入文件较大,请使用较为快速的输入方式。
[省选联考 2024] 魔法手杖
题目描述
提示: 我们在题目描述的最后提供了一份简要的、形式化描述的题面。
C 城是一座魔力之都,以最高的魔法师水平闻名。对于一名魔法师而言,最重要的固然是魔法手杖和镶嵌在手杖上的魔法水晶。
每个魔法手杖和魔法水晶都可以用魔力值来衡量其能力大小,一个魔法手杖的魔力值是镶嵌在其上的所有魔法水晶中魔力值的最小值。
小
小
小
小
形式化的: 给定
;- 满足以上条件的前提下,最大化
的值。
你只需要给出最大的
输入格式
本题有多组测试数据。 输入的第一行包含两个整数
接下来依次给出每组输入数据,对于每组数据:
- 第一行三个整数
; - 第二行
个整数 ,分别表示每个魔法水晶的初始魔力值; - 第三行
个整数 ,分别表示每个魔法水晶定向加强需要的体力值。
输出格式
对于每组测试数据输出一行一个整数表示小
样例 #1
样例输入 #1
1 2
5 2 3
1 1 2 3 7
1 1 0 3 2
1 1 1
1
0
样例输出 #1
5
2
提示
【样例 1 解释】
- 对于第一组数据,一种可行的方案为:定向强化魔法水晶
(即 )并取 ,最后得到的魔法水晶魔力值分别为 ,故魔法手杖的魔力值为 。可以证明不存在更优方案。 - 对于第二组数据,一种可行的方案为:定向强化魔法水晶
(即 )并取 。
【样例 2】
见附件中的 xor2.in/ans
。
该组样例满足
【样例 3】
见附件中的 xor3.in/ans
。
该组样例满足
【样例 4】
见附件中的 xor4.in/ans
。
该组样例满足
【样例 5】
见附件中的 xor5.in/ans
。
该组样例满足
【样例 6】
见附件中的 xor6.in/ans
。
该组样例满足
【样例 7】
见附件中的 xor7.in/ans
。
该组样例满足
【子任务】
设
; , ; ; ; ; 。
测试点编号 | 特殊性质 | ||||
---|---|---|---|---|---|
/ | |||||
A | |||||
B | |||||
B | |||||
C | |||||
/ | |||||
/ | |||||
/ | |||||
/ |
- 特殊性质 A:
; ; - 特殊性质 B:
; ,且至多只有一个 满足 ; - 特殊性质 C:
; 。
【提示】
本题输入文件较大,请使用较为快速的输入方式。
在评测环境中,你可以使用 __int128
,它可以存储范围在
需要注意,此类型无法使用诸如 cin/cout
或 scanf/printf
等常规输入输出方式进行输入输出。我们在选手目录下提供了一份 __int128
的输入输出函数实现供选手选择使用。
[省选联考 2024] 虫洞
题目描述
E 国有
为了区分虫洞的建造时间,交通部给每一条虫洞一个正整数的编号。
我们称一种虫洞的建造方案是好的,若它满足如下四个条件:
- 存在一个非负整数
使得每个城市恰好是 条虫洞的起点,也恰好是 条虫洞的终点。 - 对于每个城市而言,在以它为起点的虫洞的编号中,
到 恰好各出现一次。 - 对于每个城市而言,在以它为终点的虫洞的编号中,
到 恰好各出现一次。 - 任意选取一个城市
和正整数 。设从 出发,先经过一次编号为 的虫洞,再经过一次编号为 的虫洞,到达城市 。设从 出发,先经过一次编号为 的虫洞,再经过一次编号为 的虫洞,到达城市 。则条件 必定满足。
特别地,不建造任何虫洞的方案也是好的。
现在,建造师已建造了
由于答案很大,你只需要求出方案数除以
输入格式
输入的第一行四个非负整数
接下来
输出格式
输出一行整数,表示方案数除以
样例 #1
样例输入 #1
1 4 1 1
1 2 1
2 1 1
3 4 1
4 3 1
样例输出 #1
8
提示
【样例 1 解释】
在该组样例中,已经建造的编号为
【样例 2】
见附件中的 wormhole2.in/ans
。
该样例的
【样例 3】
见附件中的 wormhole3.in/ans
。
该样例的
【样例 4】
见附件中的 wormhole4.in/ans
。
该样例的
【样例 5】
见附件中的 wormhole5.in/ans
。
该样例的
【样例 6】
见附件中的 wormhole6.in/ans
。
该样例的
【样例 7】
见附件中的 wormhole7.in/ans
。
该样例的
【样例 8】
见附件中的 wormhole8.in/ans
。
该样例的
【样例 9】
见附件中的 wormhole9.in/ans
。
该样例的
【样例 10】
见附件中的 wormhole10.in/ans
。
该样例的
【子任务】
对于所有测试点,
, , ; , ;- 保证初始建造的
条虫洞构成一个号的建造方案。
测试点编号 | |||
---|---|---|---|
【提示】
本题部分测试点输入规模较大,我们推荐你使用较为快速的读入方式。
[省选联考 2024] 迷宫守卫
题目描述
Alice 拥有一座迷宫,这座迷宫可以抽象成一棵拥有
每个非叶节点都有一个石像守卫,初始时,所有石像守卫均在沉睡。唤醒
每个叶节点都有一个符文,
探险者初始时持有空序列
- 到达叶节点
时,将 点的符文 添加到序列 的末尾,然后返回父节点。 - 到达非叶节点
时:- 若该点的石像守卫已被唤醒,则只能先前往左儿子,(从左儿子返回后)再前往右儿子,(从右儿子返回后)最后返回父节点。
- 若该点的石像守卫在沉睡,可以在以下二者中任选其一:
- 先前往左儿子,再前往右儿子,最后返回父节点。
- 先前往右儿子,再前往左儿子,最后返回父节点。
返回节点
探险者 Bob 准备进入迷宫,他希望探险结束时的
在Bob 出发之前,Alice 可以选择一些魔力值花费之和不超过
序列
对于两个长度为
满足以下两个条件:-
;
-
。
输入格式
本题有多组测试数据。输入的第一行包含一个正整数
接下来依次
- 第一行两个整数
表示迷宫规模和 Alice 可用于唤醒石像守卫的魔力值上限。 - 第二行
个整数 表示唤醒各个石像守卫耗费的魔力值。 - 第三行
个整数 表示各个叶节点上的符文。
输出格式
对于每组数据,输出一行
样例 #1
样例输入 #1
3
1 0
1
2 1
1 1
1
2 1
3 3
3 2 1 2 1 2 1
4 2 6 3 7 1 5 8
样例输出 #1
1 2
2 1
2 4 6 3 5 8 7 1
提示
【样例 1 解释】
- 第一组数据中,Alice 无法唤醒石像守卫,Bob 可以选择先访问叶节点
,再访问叶节点 ,得 。 - 第二组数据中,Alice 可以唤醒节点
的石像守卫,Bob 只能先访问叶节点 ,再访问叶节点 ,得 。 - 第三组数据中,Alice 的最优策略是唤醒节点
的石像守卫。
【样例 2】
见附件中的 maze2.in/ans
。
该组数据满足特殊性质 A。
【样例 3】
见附件中的 maze3.in/ans
。
该组数据满足特殊性质 B。
【样例 4】
见附件中的 maze4.in/ans
。
【样例 5】
见附件中的 maze5.in/ans
。
【子任务】
设
; , ; , ; 构成 的排列。
测试点编号 | 特殊性质 | ||
---|---|---|---|
无 | |||
A | |||
B | |||
无 | |||
A | |||
B | |||
无 | |||
A | |||
B | |||
无 |
特殊性质 A:
特殊性质 B:
[省选联考 2024] 重塑时光
题目描述
小 T 正在研究某段时间中所发生的事件。经观测,有
突然,邪恶生物小 S 攻击了这条时间线,将这
具体而言,在小 S 进行第
为了拯救这条即将毁灭的时间线,小 T 决定把这
请你设计程序,计算有多大的概率,存在至少一种重新排列这
为了避免精度误差,请你输出答案对
输入格式
第一行三个整数
接下来
输出格式
输出一行一个整数,表示所求答案。
样例 #1
样例输入 #1
2 1 1
1 2
样例输出 #1
666666672
样例 #2
样例输入 #2
3 0 2
样例输出 #2
1
样例 #3
样例输入 #3
4 4 4
1 2
1 3
1 4
2 4
样例输出 #3
937500007
提示
【样例 1 解释】
假如事件
【样例 2 解释】
没有任何事件发生时间之间的先后顺序要求,因此无论怎样拼接都是可行的方案,答案为
【样例 4】
见附件中的 timeline4.in/ans
。
【样例 5】
见附件中的 timeline5.in/ans
。
该组样例满足数据范围中的特殊性质 B。
【样例 6】
见附件中的 timeline6.in/ans
。
该组样例满足数据范围中的特殊性质 A。
【样例 7】
见附件中的 timeline7.in/ans
。
【子任务】
对于所有测试数据,
, , , ,保证不存在两对 完全相同。
测试点 | 特殊性质 | |||
---|---|---|---|---|
B | ||||
无 | ||||
B | ||||
A | ||||
A | ||||
无 | ||||
无 | ||||
无 | ||||
无 | ||||
无 | ||||
无 | ||||
无 |
特殊性质 A:对于每个事件
特殊性质 B:对于所有先后顺序
[省选联考 2024] 最长待机
题目描述
精灵程序员小
为了了解最长待机的规则,首先要了解精灵们使用的编程语言 Sleep++ 的规则:
-
程序由
个函数组成,第 个函数具有种类 和子函数编号序列 。 可以为空,此时 为 。 -
以及所有的 和 可以由程序员任意给出,但它们需要满足以下所有条件: -
;
-
, ;
-
, 中元素两两不同且均为 中的整数;
-
,恰好有一个 包含了 。
-
调用函数
时,按顺序执行如下操作: -
- 若
,令变量 为 ;否则程序员需要立即为 输入一个正整数值。
- 若
-
- 若
为空,程序等待 秒;否则重复以下操作 次:
- 若
-
-
- 按顺序调用编号为
的函数。
- 按顺序调用编号为
-
-
若一个种类为
的函数 被调用多次,则其每次调用都需要输入 。 -
我们认为,在函数调用中,除了“等待
秒”之外的操作不消耗任何时间,即函数调用、运行和输入都在瞬间完成。因此,一个时刻内程序员可能输入多个数。
可以证明,调用任意一个 Sleep++ 程序的任意一个函数,无论如何设定输入,消耗的时间总是有限的。
“最长待机”的游戏规则如下:
-
小
和 小 准备好各自的 Sleep++ 程序并选择各自程序中的一个函数。它们互相知晓对方程序的结构以及选择的函数。 -
在时刻
,小 和 小 同时调用自己选择的函数,游戏开始。 -
在时刻
( ),双方可以看到对方在时刻 至 输入的所有数字,并相应调整自己在时刻 输入的数字,但双方无法得知对方在时刻 输入的数字。 -
函数调用先结束的一方输掉游戏,另一方胜利。两个调用同时结束算作平局。
小
小
- 操作一:给出
,将 修改为 ; - 操作二:给出
,与小 玩一局“最长待机”,开始时小 会调用自己的函数 。
小
可以证明,小
输入格式
输入的第一行包含两个正整数
接下来
- 前两个整数
表示函数种类和子函数编号序列长度; - 接下来
个整数 描述子函数编号序列。
接下来
输出格式
对于每个操作二输出一行一个整数,表示小
样例 #1
样例输入 #1
3 6
0 2 2 3
0 0
0 0
2 1
1 3
2 1
1 3
1 2
2 1
样例输出 #1
3
3
1
提示
【样例 1 解释】
-
对于前两次游戏,小
可以给出与小 完全一致的程序并在游戏开始时调用函数 。可以证明不存在函数个数更少的方案。 -
对于第三次游戏,小
可以给出一个仅包含一个种类为 的函数的程序,并在游戏开始时调用函数 。 -
- 在时刻
,小 输入其程序中的 ,小 输入其程序中的 。
- 在时刻
-
-
- 注意:
变量在小 和小 的程序之间是独立的,不会互相影响。
- 注意:
-
-
- 输入完成后,小
的程序在时刻 结束,小 的程序在时刻 结束。
- 输入完成后,小
-
- 由于两人在时刻
互不知道对方的决策,不能保证 和 的大小关系,故双方均不存在必胜策略,这局游戏是公平的。
- 由于两人在时刻
【样例 2】
见附件中的 sleep2.in/ans
。
该组数据满足特殊性质 AD。
【样例 3】
见附件中的 sleep3.in/ans
。
该组数据满足特殊性质 BD。
【样例 4】
见附件中的 sleep4.in/ans
。
该组数据满足特殊性质 D。
【样例 5】
见附件中的 sleep5.in/ans
。
该组数据满足特殊性质 C。
【子任务】
对于所有测试数据,
, ; , , ; , ; , ; ,恰好有一个 包含了 ; , , 。
测试点编号 | 特殊性质 | ||
---|---|---|---|
无 | |||
AD | |||
BD | |||
D | |||
AD | |||
BD | |||
D | |||
A | |||
BC | |||
B | |||
C | |||
无 | |||
A | |||
BC | |||
B | |||
C | |||
无 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!