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

学术版

StudyingFather @ 2024-11-22 12:32:43

近日使用 DeepSeek 最新推出的预览版推理模型,尝试求解了今年的 CSP-J/S 复赛题目。经过测试,模型在 J 组和 S 组上分别取得了 315 分和 160 分的好成绩。

本轮测试在流程等方面并不完全严谨,仅作为参考。

测试流程

对于每道题目,一开始只提供题目描述,输入格式和输出格式,让模型生成代码。

接下来使用生成的代码运行题目给出的小输入输出样例(以能直接输入模型为限),如果所有小样例都过了就提交代码,并终止生成流程(模拟 OI 赛制)。

如果样例测试结果未通过,则按照如下规则告知样例测试的结果:

  • 如果代码存在编译错误,则告知模型编译错误具体的发生位置和编译器输出的错误信息。
  • 如果代码在某个样例上输出了错误答案,则告知模型该样例的输入,模型给出的代码的输出和期望输出。如果该样例附有样例解释,则在样例数据后一并提供给模型。
  • 如果代码在某个样例上出现了运行时错误,则告知模型发生运行时错误的位置。
  • 如果代码出现了超时,超空间的问题,则告知模型超时,超空间的结果,提醒其进行优化。

原则上,除了如上运行结果反馈外,不向模型提供额外的提示信息。

重复以上循环,直到代码生成了能通过所有小样例的代码,或是对话长度达到上限。

测试结果

J 组测试结果:

题目名 poker explore sticks chain
得分 100 100 100^{\ast} 15

S 组测试结果

题目名 duel detect color arena
得分 100 60 0^{\ast\ast} 0^{\ast\ast}

附注:

这里值得一提的是 J 组的 sticks 题目。模型一开始给出的代码非常接近正解,只需在某个循环中加入 break 语句就能通过本题。但是模型虽然在思考链中想到了问题的根源,却始终没有能在代码中纠正这一问题,甚至出现了在原来的做法和另外一个做法间反复横跳的情况。最后我只好在用户输入中近乎明确地提示这一问题,模型才给出了正确的代码。

这样的提示超出了前面所述的“不提供运行结果之外的提示信息”的范围,使得本题的分数存在一定水分,有些遗憾。

后期如果时间允许的话,我将尝试整理模型的思考过程,给出相对完整的解析。

代码公开

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

  • J 组代码
  • S 组代码

by Iniaugoty @ 2024-11-22 12:33:50

看来我至少比大模型强


by LittleI_qwq @ 2024-11-22 12:34:46

orz


by liangbowen @ 2024-11-22 12:34:57

/jk


by LuoFeng_Nanami @ 2024-11-22 12:36:04

我也就和大模型差不多了


by SuperAlex4 @ 2024-11-22 12:37:09

被替代了 :)


by Will_qwq @ 2024-11-22 12:37:42

看来我至少比AI强


by World_Creater @ 2024-11-22 12:37:58

AI 怎么被卡到蓝钩线外了/jk/fad/qd


by MatrixGroup @ 2024-11-22 12:37:59

我也就和大模型差不多了


by Infter @ 2024-11-22 12:38:34

AI能做到这样已经很不错了


by __zyq_666_kpzc__ @ 2024-11-22 12:40:00

AI orz


| 下一页