竞赛讨论区 > 【题解】2026年情人节比赛 - ABC
头像
sishenzhimu
编辑于 02-14 23:12 湖南
+ 关注

【题解】2026年情人节比赛 - ABC

【题解】2026年情人节比赛 - ABC

A 旮旯给木不是这样的

诈骗题。如果正常按题目要求做的话,观察数据范围,会发现可能存在 等极端测试点,基本不可能通过。于是我们将目光移到题目背景和样例说明里:

  1. “你为啥直接和我表白呀”,意味着不能第一天表白,可以在样例3验证
  2. “(删除线)提升我的好感度(删除线)”,意味着本题与好感度无关
  3. “最后(删除线)在我内心神秘事件中(删除线)向我表白”,意味着最后一天执行表白行动,可以在样例1验证
  4. “打开了一款旮旯给木开始玩”,多玩几次或看控制台可以发现中间选项与结局分歧无关

综上,除了 输出 外,其余的第一行输出 、第二行输出 中的数和一个

B 互指谜题

观察可以发现 满足所有情况。

也可以通过暴力解答。

def func(m):
    # 问题二的所有情况 
    max_inv = m * (m - 1) // 2
    dp = [[0] * (max_inv + 1) for _ in range(m + 1)]
    dp[1][0] = 1
    for i in range(2, m + 1):
        prefix = [0] * (max_inv + 2)
        for j in range(max_inv + 1):
            prefix[j + 1] = prefix[j] + dp[i-1][j]
        curr_max = i * (i - 1) // 2
        for j in range(curr_max + 1):
            left = max(0, j - (i - 1))
            right = j
            dp[i][j] = prefix[right + 1] - prefix[left]
    return dp[m]

n, m = map(int, input().split())
dp = func(m)
for x in range(len(dp)):  # 遍历问题二的所有可能
    y = dp[x]
    nx = n % y if n > y else 0  # 问题一的结果
    if x == nx:
        print(x, y)

C 时差

  1. 通过瞪眼观察或鼠标滑动可以看到一行小字,可知出题人藏了details在题目里。

Due to the date_diff, we have added details to the question but hidden them.

  1. 打开控制台,找到details元素,发现一段SQL,很明显是查询牛客竞赛中某场比赛的开始时间与当前(2026-02-14)的天数差。
SELECT DATEDIFF(start_time, CONVERT_TZ(NOW(), @@session.time_zone, '+08:00'))
FROM **.********.***
WHERE contest_id = DATE_FORMAT(CURRENT_DATE, %?%?%?)
  1. 先尝试常见的年月日组合,只有 能够访问,开始时间为2021-10-08,故天数差为

ps: 鼠标在题目表述里乱点也有机会展开details,快去试试吧~

全部评论

(2) 回帖
加载中...
话题 回帖

等你来战

查看全部

热门推荐