2023HUNNUCPC 游记&部分题解
1. 游记
Day -1
??: ??
首先,我是友谊参赛,不是大学生。
考虑是 ACM 赛制,所以组队,然后上面把全湖南最强初一之一的 @_z****(为保护隐私而屏蔽,之后以 z 代替)和我组队到了一起??!(这让我压力很大啊…
当天准备好零食和鞋套,敲几个板子就睡了。
Day 0
7: 30
在地铁口集合了,一眼就看到了 z 巨佬以及各个能吊打我的巨佬。
然后发鞋套了。那我买鞋套干嘛?
8: 00
开考力,一共 \(11\) 题,我看前 \(5\),z 看后 \(6\)。
看 A,人傻了,我 T1 都不会了吗?又是什么离散型均匀分布最大化又是什么…
看 B,物理题,重力加速度模拟,不会。
看 C,可做,问一个日子与给定日子中的哪个最近,但有给定日子是不确定(比如某个月第几个星期几之类的),又要考虑是否闰年,就又摆了。
这个时候 z 告诉我他 J 会了,于是开码,我在旁边想 C 能不能简化以及 D 是什么。
8: 15
z 的 J 挂了,到我写 C 了,然后也挂了 😃
突然 z 发现 K 很好写,于是他又开始写 K。但是 K 不是防 AK 题吗,你开场 \(15min\) 写出来就…(后来看了一眼确实有点诈骗,但是能这么直接做出来。。。反正最后全场就 z 写了)
结果他还真过了,/bx
然后我发现 D 就是一个 \(lca\) 模板,比较戏剧的是题目告诉你要相信出题人,这是数据结构题。
灵机一动觉得 A 就语文题,输出一个数比给定数大就好了,然后过了。
z 的 J 仍然没过,来帮我写 C 了。
这个时候我去看 E 了,看上去是交互,实际上很水,刚想找 z 去验证一下结论发现他把 C 写完了,顺带一眼秒了 E /bx
然后我们俩都去看 J,发现 J 是一个纯粹的输出格式恐怖甚至离谱,反正就是多一个空格也会 WA。最后过了。
接下来他去看 B,然后做出来了。真就进度超前啊 %%%
12: 41
发午餐了,免费的肯德基啊 /se
分量还是很够的(一人一个汉堡、一份薯条、四个鸡腿或鸡翅),我们俩都去看 I 了。一开始我蠢蠢的现场敲线段树和 ST 表后来发现没必要,然后写了个伪正解 WA 了。z 他也想了贪心,就是莫名 RE。
13: 40
距离结束还有 \(2h\),我和 z 开始玩小恐龙(巨佬玩小恐龙都比我厉害 /bx),最后我在 z 洗手的时候终于抓到了 I 的 Bug,从 RE 变成了 WA,最后没调出来,我们就一直小恐龙到结束。
最后是做了 \(7\) 题,其中我做了 \(3.5\) 题,有 \(1.5\) 题一时间没写出来,z 帮我写的 qwq。
总排名第二。
2. 部分题解
A 德军坦克数量
原始题面: 第二次世界大战中,由于战况的激烈与残酷,双方的人员和军备都有惊人的损失。盟军方面发现一个有趣的事实:可能是出于严谨,德国人每月生产的坦克都是从1开始依次往后编号。假设某个月一共生产了\(N\)辆坦克,则这批坦克的编号就是从\(1\)到\(N\)。这使得通过观察坦克编号从而推断坦克产量成为了可能。事实上,盟军每次打扫战场的时候,随机抽查了被击毁的德国坦克编号,并请数学家进行了估计。战后证明,数学家的估计结果比根据情报人员获取的情报进行推断的结果更加准确。正因为此,目前凡是有需要的地方,其产品均不会采用连续编号。
给定\(N\)个被击毁的德军坦克编号,合理的推断当月德军坦克的产量。为简便起见,不考虑其他月份,即保证这\(N\)个编号全部都是当月的。另外,这是一个统计学里的点估计问题。采用不同的假设,显然可能导致不同的估计结果。因此,本题的答案不唯一,只要你能输出有道理的输出即可。当然考虑到情报人员获取到的最大数目是\(1400\),因此请你的推断不要超过\(1000\)。
就是给定几个数,让你输出一个 \(1000\) 以内的数比这些数都大。(出题人十年脑血栓)
做法:。
B 中国炮兵的射程
在距离你 \(L\) 的地方有一个高 \(H\) 的柱子,你有一门意大利炮,问炮弹最初速度最小多少能让炮打过去。
做法:
(虽然我也不知道这是怎么来的)
C 植树节的日期
给定一些国家的植树节日期:
| 国家 | 植树节日期 |
|---|---|
| 中国 | 3月12日 |
| 朝鲜 | 4月6日 |
| 泰国 | 9月24日 |
| 菲律宾 | 9月的第二个星期六 |
| 巴基斯坦 | 8月4日 |
| 叙利亚 | 12月的最后一个星期四 |
| 约旦 | 1月15日 |
再给定一个于 \(2000.1.1\) 至 \(2023.12.31\) 间的合法日期,问哪个国家的植树节离这个日期最近。
做法:利用 Windows 任务栏右下角的日历把所有日期打表出来(算出是第几天),然后暴力算就好了。
D 树上前驱后继关系
有两种操作,要么问两个点是不是有一个为另一个祖先,要么在某个叶子上新加一个点。
做法:求祖先显然是 \(lca\),若 \(x\) 是在 \(y\) 上新建的点,那么在求 \(x\) 和某个点是否为祖先关系相当于求 \(y\) 和某个点是否为祖先关系,注意一些特殊情况。
E 哥德巴赫猜想与西班牙电影
有三个盒子,原本盒子 \(1\) 只装第 \(1\) 种糖果,盒子 \(2\) 只装第 \(2\) 种糖果,盒子三两种都装(用 \(3\) 表示)。现在盒子所装之物被完全打乱,不会有一个人盒子装的东西没变,你至多问两次,每次询问是问某一个盒子中有什么糖果(如果这个盒子里两种糖果都有只会随机返回其中一种)。问三个盒子分别装的什么(两种糖果都装了用 \(3\) 表示)。
做法:询问一下盒子 \(3\) 有什么就能推断出另外两个(自己模拟)。
F 扫雷
没做,是防 AK 题。(就和 Windows 扫雷没什么区别,交互题。)
G 混乱的组队
有 \(N\) 个人,其中编号 \(1\) 至 \(N\)。若编号除以 \(3\) 余数为 \(1\) 为 \(A\) 类队员,余数为 \(2\) 为 \(B\) 类队员,没有余数为 \(C\) 类队员。接下来你要对他们分队,要求如下:
-
每一只队伍的组成必须是以下中的一种:\(A,\ AB,\ AC,\ ABC\),无视顺序。
-
第一支队伍中不能有其编号除以 \(3\) 下取整为 \(1\) 的人,第二支队伍中不能有其编号除以 \(3\) 下取整为 \(2\) 的人…
问合法方案数对 \(998244353\) 取模的结果。
没做不知道。
H 快跑,这是一道模拟题
如题,不知道没做(题面还老长)。
I 部长的时光机
给定 \(n\) 个时间点(单个时间点会有 \(10^9\)),没有重复的,一开始在 \(0\) 时刻。你有一个时光机,如果当前挡位是 \(x\),那么接下来 \(x\) 个时刻会直接跳过,对你而言只过了一个时刻,挡位只能增加不能减少,一开始挡位是 \(1\)。问你在每个给定时间点都要经过(也就是跳过的时刻里不能有给定时间点)的情况下你最少能经过多少个时刻(经过最后一个给定时间点为止)。
做法:先将两两之差算出来,从最后一个差值开始,挡位显然可以就是最后一个差值,之后的挡位变化就是当前差值和当前挡位的 \(\gcd\)。
J CYH的奖学金
给定一个奖学金和人数,将奖学金均分给这些人(分不开就从前面的人开始一人一块知道分不开的部分分完。),问没人分了多少。
做法:。
K 没活了
给定 \(n\),求:
忘记做法了。因为很卡常,所以我不会满分(z 会)。

浙公网安备 33010602011771号