admin 2026-01-04 21:07:09 文化传承故事

赛后总结

赛后总结

zhangyuhaoaa

·

2024-10-06 17:38:33

·

个人记录

赛后总结

比赛复盘

T1

T1直接贪心即可,我们如果想让 Luke 尽可能的名次高,那么就让每一个题目的比他低的人都总分比他低,那么这样 Luke 就可以名次就可以求出了,即 m 减去每一个题目比他低的人数的总和和 1 求最大,然后我们在考虑让 Luke 的名次尽可能的低的情况,我们可以让每个题目比他高的的人总和都比他高,那么他的名次就是每个题目比他高的人数的总和和 m 求最小。

预计100分,实际55分,因为我把 n 和 m 搞反了!!!

T2

T3我读完题目以后发现每一个数字的值域都非常的小,所以我们考虑桶排序,贪心的想,如果想让最大值最小,那么一定要让 a 中的最大值和 b 中的最小值匹配, a 中的次大值和 b 中的次小值匹配。我们用反证法证明:如果我们把两个数字交换,那么这样一组的数据就会非常的小,但是一组的数据非常的大,这样取较大值以后答案会比原先的大。

预计100分,实际90分,梦熊把数据出错了,在提示里写着没有0,但是在数据中却有0!!!!!

T3

直接 dfs 暴力。

预计20分,实际20分。

T4

我们用 floyd 加上暴力枚举4个点即可,复杂度 O(n^4)。

预计50分,实际50分。

总结

预计得分 100 + 100 + 20 + 50 = 270分。

实际得分 55 + 90 + 20 + 50 = 215分。

比赛过程中好的做法和不足

做的好的地方

做的不好的地方

T1脑瘫把 n 和 m 搞错了!!

知识点分析

T1 :贪心

T2 :桶排序

T3 :数学

T4 :图论

补题情况

T3

我们在不考虑 a_1 和 a_n 相同或不相同的时候,方案就是 (m-1)^{n-1} \times m。但是却有 a_1 和 a_n 相同的情况在里面,需要减去 a_1 和 a_n 相同的情况,如果 a_1 和 a_n 相同,那么我们就可以把 a_1 和 a_n 合并成一个大点,那么方案就是把 n-1 个点染色的情况。这样我们就有了递推公式 f(n)=(m-1)^{n-1} \times m-f(n-1) 。然后这样的时间复杂度就是 O(n^2)。然后考虑优化,我们把递推公式整理,得到 a_n-(m-1)^n=-[a_{n-1}-(m-1)^{n-1}],我们令 a_i-(m-1)^i 看作 b_i,那么 b 数组就是一个公比为 -1 的等比数列,然后我们知道首项为 m-1,那么第 n 项就是 a_n=(m-1)^n+(-1)^{n-2} \times (m-1)。