【题解】2026年情人节比赛 - ABC
A 旮旯给木不是这样的
诈骗题。如果正常按题目要求做的话,观察数据范围,会发现可能存在 等极端测试点,基本不可能通过。于是我们将目光移到题目背景和样例说明里:
- “你为啥直接和我表白呀”,意味着不能第一天表白,可以在样例3验证
- “(删除线)提升我的好感度(删除线)”,意味着本题与好感度无关
- “最后(删除线)在我内心神秘事件中(删除线)向我表白”,意味着最后一天执行表白行动,可以在样例1验证
- “打开了一款旮旯给木开始玩”,多玩几次或看控制台可以发现中间选项与结局分歧无关
综上,除了 输出
外,其余的第一行输出
、第二行输出
个
中的数和一个
。
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 时差
- 通过瞪眼观察或鼠标滑动可以看到一行小字,可知出题人藏了details在题目里。
Due to the date_diff, we have added details to the question but hidden them.
- 打开控制台,找到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, %?%?%?)
ps: 鼠标在题目表述里乱点也有机会展开details,快去试试吧~

全部评论
(2) 回帖