写给 ACM 实验室的大一新生。会开机、会打字、会复制粘贴就能读完,不用编程基础。
你可能已经用过 AI 了。中国青少年研究中心 2025 年的一份问卷里,用过 AI 的中小学生超过六成,其中七成以上拿它辅助写作业。你的学长里,也有人用它补题、查报错、写题解。
用过和会用是两回事。
同一道不会的题,会问的人两分钟拿到有用的东西,不会问的人来回十轮还在打转;同一段 AI 给的代码,有人跑一遍就知道哪里会溢出,有人直接提交,然后对着 WA 发呆。
这篇先讲怎么问 AI,再讲另一种用法(智能体)是什么样。
第一部分 先学会提问
1. 大模型是什么东西
你在输入框里敲"床前明月",它接出"光",然后拿这五个字接着猜下一个字。整段回答就是这么一个个词接出来的。
它做的事叫预测下一个词。
它怎么学会这件事的?拿海量文本做填空题,猜下一个词,猜错了调一遍内部参数,这样重复上万亿次。所以它手里握着的是文字之间的统计规律,并没有一份被验证过的知识清单。看起来什么都懂、在需要精确的地方翻车,都从这里来。
第一个后果:它给你的是一段很像人话的文字,跟"被核实过的事实"是两回事。
大部分时候两者重合,因为训练材料里"像人话"和"是对的"高度相关。问到冷门、细节、需要精确的地方,它就会一本正经地编,业内管这个叫幻觉。
ACM 场景里,幻觉长这样:
- 编一个不存在的库函数:
std::segment_tree、__gcd_ex - 编一个不存在的算法名、定理名、题号、题解链接
- 给你一段语法完全正确的代码,复杂度是 O(n²)(数据一大就跑不完),而题目 n = 2×10⁵
- 说这题用并查集,其实这题并查集做不了
- 说"你的代码逻辑没有问题",这句话最贵
它写得越流畅,你越容易信。流畅和正确是两码事。
第二个后果:它不认识你。
新开一个对话,它对你是零了解:不知道你大一还是研三,会 C++ 还是 Python,卡在哪一步。你不说,它就按普通人猜,猜错了你还觉得它笨。
还有五件事你迟早会遇到:
- 它一次能看到的字数有限。 你贴一份 800 行代码再聊二十轮,最早的内容会被挤出去。它说"你刚才不是说了吗",是真的看不见了。今年 2 月有个报道,一位大厂的 AI 安全研究员让智能体整理自己的邮箱,交代过没批准不要动手,它转头开始批量删邮件,三次喊停都没用,删掉两百多封,最后靠强行终止才停下。原因是那条"不许动"的指令被后来的内容挤出了上下文。对话式 AI 忘了顶多答歪,能动手的工具忘了,代价就是这么具体。
- 同一个问题问两遍,答案可能不一样。 它是按概率选词的。上一轮说没问题、下一轮说有问题,都正常,以能跑通、能证明的为准。
- 它的知识有截止时间,默认不联网。 它不一定知道昨天那场 CF 的题。稳妥的做法是把题面原文贴过去,别只给链接。
- 同一个模型装在不同产品里,差别可能很大。 常见开关有三个:联网搜索,回答前先去搜一遍网页;深度思考,让它先把推理草稿写出来再给结论,做推导题有用;上传文件,把题面、代码、PDF 塞给它看。
- 它按"词块"计数,业内叫 token。 中文大概一两个字算一个。你贴得越长,它记得越少、回答越慢;有的产品按用量收费,长代码和长文档是吃掉额度的主力。
总结:它是助教,不是枪手。
讲概念、看代码、给提示、陪你练,都是助教该干的;替你考试、替你比赛、替你交作业,不是。
它做不到什么:
- 不保证正确,提交的代码是你在签字
- 不替你形成直觉,赛场上看见题就知道往哪想,这个只能自己刷出来
- 不稳定,产品会改版,今天的按钮明天未必还在,所以这篇讲方法,不讲操作步骤
2. 怎么问
2.1 "这道题怎么做"为什么最差
这句话把信息量全丢给了对方。它只能猜:
- 猜你的水平,于是从你听都没听过的高级算法讲起
- 猜你要什么,默认你要代码,于是甩你 80 行
- 猜数据范围,于是给你一个 O(n²) 的"正确"答案
- 猜你卡在哪,它连你是不会算法还是写挂了都不知道
猜错的代价由你承担。
2.2 四件套
这是全篇最该背下来的一段。
| 件套 | 你要交代什么 | 它解决什么问题 |
|---|---|---|
| 背景 | 我是谁、在干什么、做到哪一步 | 它不认识你 |
| 任务 | 要它做的具体动作:诊断、解释、给提示、出题 | 它不知道该干什么 |
| 约束 | 不许做什么,什么语言、什么风格 | 它会自由发挥 |
| 格式 | 输出长什么样:分点、表格、先思路后代码、只要一级提示 | 回答你没法用 |
写成一句话是这样:
我是大一,学 C++,会模拟、二分、简单 DP。这题我读懂了题意,但想不到方向。先别给代码,问我三个能引导我自己想的问题,一次问一个。题面在下面。
四件里最容易被跳过的是约束。 只说"帮我看看这题"和说"先别给代码,给我三个引导问题",拿到的东西完全不同。
2.3 两个例子
第一种,完全不会做:
差:这题怎么做?
好:我是大一,用 C++,学过模拟、二分、前缀和。这题读懂了题意,但完全想不到方向。请不要直接给代码,先问我三个问题引导我想,一次问一个。题面:……
第二种,会做但写挂了,用得最多:
差:我代码错哪了?然后贴 200 行。
好:C++,n ≤ 2×10⁵,题面在下面。样例过了,提交在第 3 个点 WA。我的思路是先按 x 排序,再扫一遍维护最小值。请只做两件事,一是判断我的复杂度够不够,二是指出代码里可能跟边界有关的行号,不要重写整份代码。
第二种问法信息量是第一种的十倍,多花的时间大概两分钟。
2.4 提问分五档
同一道不会的题,问法分五档:
| 档位 | 你要什么 | 典型问法 | 拿到什么 |
|---|---|---|---|
| L1 | 答案 | 给我 AC 代码 | 题过了,人没长 |
| L2 | 方向 | 这题用什么算法 | 知道知识点,还是不会推 |
| L3 | 诊断 | 我想到用 X,卡在 Y,帮我看看断在哪 | 补上一个思维缺口 |
| L4 | 提示 | 别给做法,先给一级提示 | 自己推出来,真会了 |
| L5 | 训练 | 换个数据范围再考我一次 | 练出直觉 |
L1 不是绝对不能用。 卡了两小时毫无进展、这题又不在你当前训练目标里,看答案合理。但必须配一个动作:合上屏幕,自己重写一遍。写不出来,这次 AC 白拿。
L4 最值钱。 你说"别给做法,按难度给三级提示,先只给第一级",然后自己在"快想出来了"和"卡死了"之间找平衡。推出来了,知识归你;推不动,再要一级成本也很低。
L5 很多人想不到。 让它出题考你,让它当面试官追问你,你讲一遍做法让它挑毛病。你输出的越多,学到的越多。
2.5 五个能直接用的模板
模板 1 读题
把下面这段英文题面翻译成中文,保留所有数学符号和数据范围。然后输出三行:
① 输入是什么,范围多大
② 输出是什么,格式有什么要求
③ 一句话概括题目要求
最后单独列出所有容易漏掉的条件(多组数据、精度、特殊约定)。
题面:
模板 2 分级提示
这题我想了 40 分钟,别直接给做法和代码。
按难度给我三级提示,现在只给第一级,我说"继续"再给第二级。
第一级含糊一点,只要能把我的注意力挪到正确的方向。
模板 3 WA 排查(2.3 里那种情况的可复制版)
语言 C++,n ≤ 2×10⁵,样例过了,提交 WA 在第 3 个点。
我的思路:(一句话)
题面和代码在下面。请按顺序做三件事,不要重写代码:
① 判断复杂度够不够
② 列出所有跟边界有关的可疑行,标出行号并说明原因(空输入、n=1、最大值、多测清空、溢出)
③ 给我三组能构造出来的测试数据,我自己跑
模板 4 学新算法
我要学(算法名),我的基础是(已学内容)。
按这个顺序讲,每节配一个小例子:
① 它解决什么问题,先给一个不用它必超时的例子
② 核心思想一句话说清
③ 手推一个三到五个元素的完整过程
④ 新手最容易写错的三个地方
先只讲 ①②③,我说继续再往下。
模板 5 对拍
我要自己验证一个程序。给我三样东西,都用 C++:
① 随机数据生成器,参数是(数据范围,比如 n ≤ 8、保证连通、允许重边)
② 一份暴力写法,数据小的时候一定对
③ 对拍脚本,跑 1000 次,出错就把这组数据存成 hack.txt 并停下来
再告诉我这类题常见的坑在哪(比如退化成一条链、全是同一种数据、取到极值)。
2.6 几条省时间的习惯
- 先自己想二十分钟,把判断写下来,再去问。 这条最反直觉,也最值钱。刚拿到题就问,你问不出好问题,也看不懂回答;先落笔写两句自己的思路,你才有得比,不然会不自觉地往它的说法上靠。
- 一次只改一个地方。 回答不满意要换问法,一次改一处,你才知道是哪句话起了作用。同时改三处,下次还是抓瞎。
- 客气话没用。 "求求你了""你一定可以",它一个字都听不进去。信息才有用。
- 一个对话只聊一件事。 你在一个对话里从图论聊到高数再聊回代码,前面的内容会互相干扰,越聊越乱。换话题就新开一个。
- 让它先复述你的需求。 加一句"先别回答,用一句话复述我的需求,我确认了你再往下"。它理解错了,你在这里就能拦住。
问之前再问自己三句话:题面贴了吗,报错原文贴了吗,我给的信息够一个陌生人复现问题吗。把 AI 当成刚进群的学长,他只看你这段话能不能定位问题。不能,就补。
3. 怎么判断它在骗你
3.1 三查
拿 AI 给的代码按这三条过一遍:
| 查什么 | 具体查什么 |
|---|---|
| 数据范围 | 数组开够了吗(n ≤ 2×10⁵ 结果开了 a[100005] 就是错的);答案要不要取模;int 装得下 10 万乘 10 万吗,装不下要换 long long;复杂度够不够,保守按 1 秒 10⁸ 次简单运算估 |
| 边界 | n = 1、空输入、多组数据有没有清空数组、图论题里的重边自环不连通、退化成一条链的时候还活着吗 |
| 代码 | 编译过(警告也看一眼)、样例过、对拍过 |
新手 WA 一大半出在边界上。 对拍是最强的一招:写一份数据小的时候一定对的暴力,随机造数据,跟你的程序比几百组。生成器和对拍脚本直接跟 AI 要,模板在 2.5。
3.2 让它自证,或者换个 AI 问
对重要结论加一句:
你确定吗?给我一个能验证它的办法,或者写出反例长什么样。
能给出可验证路径的,大概率靠谱;开始绕圈子、改口、重复自己的话,八成在编。
另一个办法是把同一个问题扔给第二个 AI。两个都这么说,可信度上去;两个说法打架,其中至少一个在编,得自己动手裁决。
3.3 去原出处核对
凡是有出处的东西,去原出处看一眼。它说"这题是洛谷 P3372,用线段树",你就打开 P3372 看看题号和题目对不对得上。它给的题解链接、论文、库函数文档,同样处理。
查不了出处又必须用到的事实,就当它不存在。
3.4 一条判准
能跑一遍或者推一遍验证的,去验证;只能"感觉对"的,先存疑。
4. 四条红线
-
比赛现场禁用 AI。 ICPC、CCPC 的规则写得很清楚,牛客周赛的说明里也有一句"不得使用 AI 工具作答"。被抓到不是扣分的问题。训练赛和校内赛按你自己的赛事规定来,不确定就问学长。
-
隐私和密钥不往对话框里贴。 身份证号、学号、密码、验证码、各种账号的 Cookie 和 Token,还有别人的照片和聊天记录。上传文件之前看一眼文件名。
-
别让 AI 替你交差。 作业和论文按学校规范来,有的学校要求论文里 AI 生成内容不超过一定比例,四川大学是文科 20%、理工医科 15%。署你名字的东西责任是你的,AI 写错了挂的是你的科。
-
大一新生不要自己去搭开源智能体。 网上那些“教你部署”的教程看着很酷,但它要你自己处理这些:
- 申请和保管 API Key,Key 就是钱,泄露了可能被刷爆
- 处理权限和备份,它删错文件你救不回来
- 盯账单,写错一个循环,费用可能一夜之间很难看
这些工具能做的事,现成产品基本都能做。你现在需要的是用好 AI 帮你学算法,用不着运维一个 AI 系统。真想折腾,放到大二大三,等你有明确需求、有备份习惯,并且问过学长之后再说。
第二部分 进阶,认识智能体
这一部分当科普看,不用现在动手。
5. 智能体是什么
先说它跟你现在用的东西差在哪:
- 对话式 AI: 打开网页或 App,问"这道题怎么做",它给你一段话,看完活还得自己干
- 智能体: 你给一个目标,它自己拆步骤、自己动手,做完把结果交给你。比如说"把我这周比赛的记录整理成一张表",它会自己规划步骤、自己去查、自己生成文件
两者的关系有一个公式:Agent = Model + Harness。
- Model 就是你前面熟悉的那个大模型,负责想:理解你的话、推理、做决定。
- Harness 指模型外面那层外壳,负责做:调用工具、读写文件、执行命令、管理上下文、记住事情。2026 年 8 月 DeepSeek 开源的 DeepSeek Harness(简称 dsh)就在这个位置,它既不是模型,也不是打开就能聊的产品,是把模型变成能干活的那个壳。
这个公式解释了一件容易困惑的事:同一个模型,在网页里聊天就只是聊天,装进智能体产品里就能干活,差别在于外面这层壳给没给它接上手。不同智能体产品的区别也能这么看,用的模型可能一样,差别在手有多长、权限有多大、记不记得住你。
它能干的事可以归成四类:读写文件、跑任务和调工具、上网查资料、定时执行。第四类容易被忽略,对长期学习却有用,它把"你得记着去做的事"变成"到点自动发生的事"。
不管哪家产品,要认的概念就这几个:
- 工作区。 它只能碰到你给它的东西,你上传的文件,你授权的目录。它说"我没看到这个文件",多半是你没给它,不是它笨。
- 记忆。 这是它和临时聊天最大的区别。没有记忆,你每开一个新对话都得重复一遍"我是大一、我会 C++、别直接给我代码";有记忆,它记得你的水平、你的习惯、你上次卡在哪。国内大部分产品都有这个功能,入口叫法不一样,有叫"记忆"的,有叫"个人设定""自定义指令"的。
- 技能和插件。 产品里常看到"技能""插件""工具"这类入口,作用是把"只会说"变成"能动手",比如读文档、画图、跑代码。
- 定时任务。 安排"每天早上 7:00 出一道题",到点它自己跑完推给你。不是所有产品都有,你最看重它,就挑带它的。
- 权限和审批。 看到"是否允许"的弹窗,读完再点。前面那个删邮件的例子就是这一条的反面,它能做的事情越多,你越要盯着。
6. 它能帮你做什么
先说结论:你现在不用装任何东西,国内现成产品打开就能用。
- 聊天问答: DeepSeek、Kimi、通义千问,挑一个用熟就行。Kimi 读长文档强,通义千问做表格和文档强,DeepSeek 推理和代码强。
- 写代码: 腾讯 CodeBuddy、字节 Trae、阿里 Qoder、百度文心快码,形态是编辑器插件或者独立编辑器,能直接改你的代码。
- 出成品: 扣子空间、Manus 这类通用智能体,适合多步骤任务,简单问答用它反而浪费。
在算法学习里,智能体比对话式多出来的部分主要是“不用你盯着”。三个可以直接照抄的用法:
- 赛后补题。 把没做出来的题面贴过去,让它按顺序做:每道题一句话说考点,再挑一道给你三条"该怎么想"的引导,不要给做法和代码。你自己想过之后再来找它。
- 把一个专题学完。 让它带你走一遍:先说不会这个算法会遇到什么麻烦,再讲原理加手推小例子,再给精简模板,再出三道递进难度的题,最后批改你的答案,指出你思路上的习惯性问题。关键是自己敲一遍模板,真的做完那三道题。
- 每天一道题。 如果产品支持定时任务,让它每天从你的薄弱知识点里挑一个出一道题,附两条思路线索,到点推给你。设之前先让它手动跑一次,确认没问题再定时,否则你每天早上收到的是垃圾。
AI 会不会让我变菜
会,如果你把它当拐杖用。
《经济学人》今年 8 月报道过一项研究,针对两万多名中国中学生,成果发表在 CEPR 的讨论稿上。
- 用上 AI 之后,作业分数平均涨 18%,写作业时间从 64 分钟降到 45 分钟
- 同一批人闭卷考试的成绩,比不用 AI 的同学低 20%
- 作业分越高的人,往往就是 AI 用得越深的人。作业分数第一次开始撒谎
今年 9 月发布的 PISA 2025(国际学生评估项目)给出了更细的区分。91 个国家和地区、76 万名 15 岁学生里:
- 成绩最差的是两头,"几乎不用"和"每天都用";每月、每周用几次的人反而更好
- 拿 AI 去替代本该自己做的事,比如总结本该自己读的课文、起草本该自己写的作业,这部分学生掉得最多
- 报告里还有一句:接受过"怎么判断 AI 生成信息质量"训练的学生,结果明显更好
两道证据指向同一件事:怎么用它,比用不用它更要紧。当脚手架用,搭着你往上爬,爬上去就该拆;当拐杖用,替你走路,用久了腿会废。
所以这篇教程最后落在三件事上:
- 你能不能把问题说清楚
- 你能不能判断一个回答是真懂还是在编
- 你愿不愿意在拿到答案之后自己再动手走一遍
工具每年都在换,这三件事不会。
上手
今天就能做三件事:
- 把下面这段粘进你常用产品的记忆或个人设定入口,一次设置,长期有效。
- 找一道最近 WA 过的题,用 2.5 里的排查模板问一次,看它给的可疑行对不对,再自己去验证。
- 下次想题先自己写二十分钟,把想法记下来,再发给它。
我是大一新生,计算机专业,ACM 方向,主用 C++。
目前会:语法基础、模拟、二分、前缀和、简单 DP、DFS/BFS。
正在学:图论。还没学:线段树、网络流。
刷题平台:洛谷、Codeforces,目前在练难度分 900 到 1300 的题。
请这样跟我说话:
- 用中文,术语第一次出现时给英文原文
- 我说"不懂"的时候换个更简单的例子重讲
- 代码风格简单点,不用 lambda
- 涉及复杂度必须提醒我数据范围能不能过
默认不要做的事:
- 不要一上来就给完整 AC 代码,先给提示,一级一级来
- 我的代码只做诊断,不要整份重写,要改就说改哪一行、为什么
- 不要编题号、链接、库函数,不知道就说不知道
几个零碎问题
用中文问还是英文问? 中文够用。查冷门库函数、贴报错原文的时候,带上英文更准。
要不要付费? 先免费用熟。免费版的瓶颈不是模型不够强,是你还不会提问。等哪天你发现"它老胡说",再考虑花钱。
AI 给的代码能直接交到 OJ 上吗? 能提交,但先过 3.1 的三查。正式比赛禁用,训练赛和课程作业看规定。
要不要专门学"提示词工程"? 不用当学问背,记住四件套就够了。真正长本事的地方是:拿到一个烂回答,你知道该改哪一句。
速查卡
可以截图存手机。
| 项目 | 内容 |
|---|---|
| 提问四件套 | 背景 / 任务 / 约束 / 格式 |
| 问前三句话 | 题面贴了吗 / 报错原文贴了吗 / 够陌生人复现吗 |
| 五档提问 | L1 答案、L2 方向、L3 诊断、L4 提示、L5 训练,日常多用 L3 到 L5 |
| 三查 | 数据范围 / 边界 / 跑通三件套(编译、样例、对拍) |
| 自证话术 | 你确定吗?给我一个能验证的办法,或者反例长什么样 |
| 智能体 | Agent = Model + Harness,能力是读写文件、跑任务、查资料、定时执行 |
| 红线 | 比赛禁用 AI / 隐私密钥不贴 / 不替交差 / 大一别自己搭 |