社区讨论

使用 DeepSeek 模型求解今年 CSP-J/S 题目

学术版参与者 50已保存回复 61

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
61 条
当前快照
1 份
快照标识符
@m3s8xq5a
此快照首次捕获于
2024/11/22 12:33
去年
此快照最后确认于
2025/11/05 01:30
4 个月前
查看原帖
近日使用 DeepSeek 最新推出的预览版推理模型,尝试求解了今年的 CSP-J/S 复赛题目。经过测试,模型在 J 组和 S 组上分别取得了 315 分和 160 分的好成绩。
本轮测试在流程等方面并不完全严谨,仅作为参考。

测试流程

对于每道题目,一开始只提供题目描述,输入格式和输出格式,让模型生成代码。
接下来使用生成的代码运行题目给出的小输入输出样例(以能直接输入模型为限),如果所有小样例都过了就提交代码,并终止生成流程(模拟 OI 赛制)。
如果样例测试结果未通过,则按照如下规则告知样例测试的结果:
  • 如果代码存在编译错误,则告知模型编译错误具体的发生位置和编译器输出的错误信息。
  • 如果代码在某个样例上输出了错误答案,则告知模型该样例的输入,模型给出的代码的输出和期望输出。如果该样例附有样例解释,则在样例数据后一并提供给模型。
  • 如果代码在某个样例上出现了运行时错误,则告知模型发生运行时错误的位置。
  • 如果代码出现了超时,超空间的问题,则告知模型超时,超空间的结果,提醒其进行优化。
原则上,除了如上运行结果反馈外,不向模型提供额外的提示信息。
重复以上循环,直到代码生成了能通过所有小样例的代码,或是对话长度达到上限。

测试结果

J 组测试结果:
S 组测试结果
题目名dueldetectcolorarena
得分100100606000^{\ast\ast}00^{\ast\ast}
附注:
  • ^{\ast}:生成代码过程中,提供了超范围的额外提示信息。
  • ^{\ast\ast}:未能生成通过小样例的代码。
这里值得一提的是 J 组的 sticks 题目。模型一开始给出的代码非常接近正解,只需在某个循环中加入 break 语句就能通过本题。但是模型虽然在思考链中想到了问题的根源,却始终没有能在代码中纠正这一问题,甚至出现了在原来的做法和另外一个做法间反复横跳的情况。最后我只好在用户输入中近乎明确地提示这一问题,模型才给出了正确的代码。
这样的提示超出了前面所述的“不提供运行结果之外的提示信息”的范围,使得本题的分数存在一定水分,有些遗憾。
后期如果时间允许的话,我将尝试整理模型的思考过程,给出相对完整的解析。

代码公开

考虑到不少同学因为未加入代码公开计划等原因,无法看到上面的提交记录的代码,下面以云剪贴板的形式给出本次测试过程中 AI 生成的代码,供参考。

回复

61 条回复,欢迎继续交流。

正在加载回复...