近日使用 DeepSeek 最新推出的预览版推理模型,尝试求解了今年的 CSP-J/S 复赛题目。经过测试,模型在 J 组和 S 组上分别取得了 315 分和 160 分的好成绩。
本轮测试在流程等方面并不完全严谨,仅作为参考。
对于每道题目,一开始只提供题目描述,输入格式和输出格式,让模型生成代码。
接下来使用生成的代码运行题目给出的小输入输出样例(以能直接输入模型为限),如果所有小样例都过了就提交代码,并终止生成流程(模拟 OI 赛制)。
如果样例测试结果未通过,则按照如下规则告知样例测试的结果:
原则上,除了如上运行结果反馈外,不向模型提供额外的提示信息。
重复以上循环,直到代码生成了能通过所有小样例的代码,或是对话长度达到上限。
J 组测试结果:
题目名 | poker | explore | sticks | chain |
---|---|---|---|---|
得分 | 100 | 100 | 100∗ | 15 |
S 组测试结果
题目名 | duel | detect | color | arena |
---|---|---|---|---|
得分 | 100 | 60 | 0∗∗ | 0∗∗ |
附注:
这里值得一提的是 J 组的 sticks
题目。模型一开始给出的代码非常接近正解,只需在某个循环中加入 break
语句就能通过本题。但是模型虽然在思考链中想到了问题的根源,却始终没有能在代码中纠正这一问题,甚至出现了在原来的做法和另外一个做法间反复横跳的情况。最后我只好在用户输入中近乎明确地提示这一问题,模型才给出了正确的代码。
这样的提示超出了前面所述的“不提供运行结果之外的提示信息”的范围,使得本题的分数存在一定水分,有些遗憾。
后期如果时间允许的话,我将尝试整理模型的思考过程,给出相对完整的解析。
考虑到不少同学因为未加入代码公开计划等原因,无法看到上面的提交记录的代码,下面以云剪贴板的形式给出本次测试过程中 AI 生成的代码,供参考。