
每年1月初SMU机房里的键盘声会准时变得密集起来。作为带过两年寒假训练的“老学长”我今年又回到训练营帮新队员做入门辅导。说句实话第一周往往是整个训练营信息密度最高、也最容易劝退人的一周——不是因为题难而是很多同学不清楚这一周该干什么、该怎么学、学到什么程度才算合格。这篇东西就是把SMU寒假训练第一周从头到尾拆一遍训练目标、分组逻辑、每天的实操内容、训练赛复盘还有那些我在辅导时反复遇到的坑。无论你是刚入营的大一新生还是想自己组队刷题的自学者照着这个节奏走能少走很多弯路。SMU寒假训练并不是一个“上课听讲”的集训更像一个高强度的项目式刷题营白天有专题讲解和配套练习晚上是自由刷题和答疑周末有一场限时训练赛。第一周的任务不是让你去碰什么动态规划、线段树这些硬核算法而是把枚举、排序、二分、贪心、STL这些“地基”打牢并完成从“能写代码”到“能稳定地AC题目”的转变。这篇文章主要写给两类人一类是正在参加国内高校ACM/程序设计集训、处于寒假第一周的同学另一类是想照着这种模式自学算法但不知道从何下手的学习者。1. 先聊聊这周训练营在干嘛1.1 哪些人适合来哪些人别急着来报名SMU寒假训练的同学背景五花八门有CS专业的大一新生也有信管、数学、电子甚至商学院的学生。这不奇怪程序设计竞赛本身不对专业设门槛它考验的更多是逻辑拆解能力和代码落地能力。但有两类人其实不太适合在第一周就进入这个训练营一类是连最基础的循环、数组、函数都还没写利索的纯零基础同学另一类是觉得自己“会写代码了只想学高级算法”的急性子。先说第一类。如果你到现在还不能独立写出“输入n个数倒序输出”这种程序那第一周你会很痛苦。训练营默认你具备基本的C/C或Python语法能力并不会花时间教你if/else怎么写。这类同学建议先自己花一到两周刷完一门入门课的基础题再来参加训练。第二类则更常见很多同学在学校里上过C语言课期末考了90分觉得自己很强结果第一周的二分专题就翻车了。原因很简单学校里考的是“写代码”竞赛里考的是“在限定时间和数据规模下解决问题”这完全是两个维度。那什么样的人适合在寒假第一周留下来第一能静下心坐两小时写一道题第二愿意在看不懂题解的时候反复debug而不是直接放弃第三接受“我写的代码经常错”这个事实。第一周的核心产出不是“我会了某个算法”而是建立起每天至少AC若干道题的稳定节奏以及一套属于自己的调试方法。如果你能做到这些那这一周的训练就是有价值的。1.2 第一周为什么只安排基础题很多新生刚进来看到课表会觉得有点失望“怎么第一天就是STL和排序这些我在学校都学过了。”这种心态我太熟了因为我自己大一的时候也这么想过。但后来带训练、也复盘过自己的成长路径之后我越来越确定一件事寒假训练第一周安排基础题不是出于保守而是因为后面几周的DP、图论、数论全部依赖这些基础专题的操作熟练度。举个例子第三周讲最短路的时候题目需要用优先队列做Dijkstra。如果第一周你只是“听过”priority_queue但没有亲手写过几十次、没踩过自定义排序的坑那到第三周你就只能在旁边看别人AC。再比如二分答案这个东西看起来只需要会写模板但真正比赛里十个人有八个会把边界情况写错——死循环、答案差1、溢出全是细节。基础题的意义就是把“我以为我会了”变成“我真的能稳定AC”这个过程只能靠题量堆出来。而且第一周的题目设计有一定的“拉练”性质。看起来简单但数据规模会逐渐变大题面描述也会变长这就要求你掌握快速的题意抽取能力。很多同学前面几天AC得很顺到周三周四就开始卡题这正是训练营的节奏前三天给你建立信心后三天开始上强度周六用一场训练赛检验本周学习成果。如果你第一周就觉得题目太简单那大概率是你在舒适区里停留了而不是你真的强。1.3 分组机制你是新生组还是竞赛组SMU寒假训练不是所有人刷同一套题而是分成三个组别每组配不同的题目列表和目标进度。新生组对应的是刚刚接触竞赛、目标是一周内巩固基础语法和简单数据结构进阶组对应的是有几个月刷题经验、能稳定AC Codeforces Div2的A题和部分B题的同学竞赛组则直接对标区域赛水平第一周就会碰一些思维题和中等难度的数据结构。分组的标准不是看你年级而是看入学测试的成绩和日常刷题记录。第一次分组之后并不是固定的每周训练赛后会根据排名做小幅调整。这里多说一句如果你是新生别急着跳组。我见过太多大一同学入学测试混到进阶组结果训练时每日任务只完成一半心态崩了第二周自己就要求调回来。反倒是老老实实在新生组把二分、贪心、STL练扎实的同学第三周升组之后反而越写越顺。有些没有分组的自学同学可能会问那我怎么确定自己现在在哪个水平一个简单的判断方法去Codeforces做一套Div2的题目如果你能稳定写出前两题且通过说明你有进阶组的底子如果A题有时还会卡老老实实先把新生组的专题刷完。不要觉得这很丢人——第一周的目标从来不是证明你有多厉害而是让你后面四周学得更舒服。2. 环境与工具箱第一天就必须搞定的事2.1 语言C还是Python训练营第一天第一件事不是发题单而是确认你的主力语言。我的建议很直接参加这类训练营主力语言选C至少在寒假这段时间里选C。原因有三个第一竞赛类OJ上的C题解和代码模板最丰富你在vector、sort、优先队列这些数据结构上遇到问题搜出来的答案基本都是C版本的。第二C在复杂度和内存控制上更接近比赛环境很多Python能轻松写出来的解法在数据规模大了之后会直接TLE而你又很难在短时间内定位到底是语言慢还是算法不好。当然这不代表Python不能用来做题。我自己的习惯是C用来写正式提交的代码Python用来做小规模数据验证和公式推导。比如你在做一道二分答案的题怀疑自己的浮点精度出了问题用Python跑几个随机小数据对比一下C输出的结果调试效率会高很多。但如果你在第一周就决定“我就要用Python打比赛”那后面遇到一些复杂度卡的题目你可能需要比别人多操很多心。语言确定之后环境配置反而是第一周最容易被忽略也最容易出问题的地方。我们训练营用的是自己的OJ支持C17和Python3。我用的是VS Code配C/C插件再加上Code Runner一键运行基本能满足日常刷题需求。如果你的电脑配置一般也可以用Dev-Cpp这种轻量IDE不过我更推荐VS Code因为它的调试器对新手更友好。注意最开始就配置好别等周三要用调试器了才装。2.2 开发环境与OJ提交配置在OJ上做题很多人第一次提交就吃了一发Compile Error原因往往是环境不一致。比如本地编译用的是C14OJ上是C17或者本地用了bits/stdc.h这个万能头文件而OJ不允许这个头文件。SMU的OJ支持bits/stdc.h但有些学校OJ不一定支持。第一周建议养成一个基本习惯你的代码里包含了的头文件就尽量做到不依赖任何扩展特性至少别用那些在自定义测试环境里可能出问题的写法。另一个细节是输入输出的效率。很多人不知道C的cin/cout默认要和C的stdio同步用来保证混用时行为一致但同步的开销很大。第一周数据规模比较小感受不出来到了周六训练赛有些题n可能到10的5次方你会发现暴力写法本来能过的结果因为输入输出太慢TLE了。解决方法很简单在main函数第一行写上ios::sync_with_stdio(false); cin.tie(nullptr);就这两行很多题能直接从超时变成通过。我自己在第一周还强调一个问题养成写一个本地测试的固定流程。ACMer的日常不是“写完代码就交”而是“写完代码 → 跑一遍样例 → 自己构造两个边界数据 → 再交”。第一周你可能会发现明明样例过了交上去却WA原因就是样例覆盖不到边界情况。比如一道题要求n可能是0你的代码没处理比如数组下标从1开始你循环里却写成了从0开始。这类低级错误一遍一遍在本地测试中检查后面自然会少很多。2.3 一个能省的懒人工具箱对拍脚本与测速模板第一周我强烈建议你花半小时学会写一个最简单的对拍脚本。什么是对拍简单说就是拿你的优化解法和一个暴力解法同时跑同一组随机输入看输出是否一致。如果你在一个算法专题上卡了很久用对拍可以快速找出你代码里逻辑错误的位置。对拍脚本的原理很简单写三个文件一个生成随机数据的gen.py一个sol.cpp你写的正解一个bf.cpp暴力解然后循环跑测试。我提供一个最基础的bash脚本Linux/macOS和WSL环境下可用#!/bin/bash for i in $(seq 1 1000); do python3 gen.py input.txt ./sol input.txt out1.txt ./bf input.txt out2.txt if diff -q out1.txt out2.txt /dev/null; then continue else echo Wrong Answer on test $i break fi doneWindows用户可以在Git Bash或WSL里跑。有的同学可能觉得这对拍只对简单题有用等以后做图论、DP时也能用而且越到后面越能救命。试想一下你二分答案的check函数写错了一行肉眼根本看不出来但对拍能在一分钟之内定位到你错在哪组数据上。第一周就把这套工具练熟后面四周的debug效率至少翻一倍。3. 第一周三天的核心内容拆解3.1 周一熟悉OJ与“看题”的基本功SMU寒假训练第一周大概率会落在1月初。第一天上午开营、分组、环境配置下午就开始正式刷题。新生组第一天不碰任何算法只做IO练习和模拟题。不是轻视你们而是让大家先把OJ的规则摸清楚题目是什么样的输入格式、有没有多组数据、输出的换行和空格要求是什么这些细节漏水一个都AC不了。这里我想特别讲一下“看题”这个基本功。很多同学第一周做题慢不是代码写得慢而是题读得慢。一道题反复读三遍还是不知道它要你输出什么。我的建议是拿到题目先看输入输出格式再看数据范围最后才回头读题面。这样做的原因是输入输出格式和范围告诉你这道题的算法量级大概在哪——如果n最大是10的6次方你基本可以排除O(n²)的写法如果n只有20那可能就是个搜索或状压题。学会用这种方式快速框定算法范围是竞赛里很重要的能力。周一的题目一般会包含几个经典输入输出坑。比如“读到文件尾”和多组数据循环很多人第一周在这上面卡住。经典的写法是这样int n; while (cin n) { // 处理每一个n }你会发现很多入门题要求你处理到EOF为止如果你只读一组数据交上去就是WA。再比如输出浮点数时要求保留两位小数正确的写法是printf(%.2f\n, ans);而不是直接用cout输出一长串小数。这些都是第一天的教训。当天结束前如果你已经能连续AC三到五道模拟题并且完全理解了输入输出的边界情况那这一天的目标就完成了。3.2 周二STL与排序——输出格式和比较函数别乱写第二天的专题是STL容器与排序。vector、pair、sort这三个东西是后面几乎每道题都会用到的工具。如果你之前只是在学校里听说过这周就要做到给你一组数你能在三分钟内写出排序并稳定通过。这个速度不是天生的是练出来的。排序看起来简单但坑非常多。最典型的是sort的自定义比较函数。比如你有一个pair想按第一关键字升序、第二关键字降序来排很多人会写出这样的代码bool cmp(pairint, int a, pairint, int b) { if (a.first ! b.first) return a.first b.first; return a.second b.second; }这本身没问题但如果你把第二个return写成a.second b.second也不会编译报错逻辑却反了。更严重的错误是比较函数必须严格满足“严格弱序”也就是说不能出现a b和b a同时为真的情况。很多人比较函数里漏了一种情况导致sort直接RE或者死循环这就是传说中的“sort比较函数未定义行为”。遇到这类问题最快的排查方法是本地跑一个随机小数据对拍看看是不是比较器写错了。vector的坑也不少见。很多人会在遍历vector时做删除操作比如在循环里erase当前元素这是经典的迭代器失效问题。第一周你可能会觉得这个错误很蠢但真的会有人反复犯等后面做邻接表相关题目时会更加明显。我的建议是如果需要删除元素要么使用erase配合迭代器的返回值要么借助一个临时vector倒着处理别在遍历中直接删。周二结束前你如果能用STL顺利解决五道排序题并理解sort的比较器究竟是干嘛的后面写优先队列会省很多心。3.3 周三二分与贪心——最容易被低估的专题到周三训练营开始动真格了。新生组和进阶组都会讲二分查找和二分答案。很多人觉得二分有什么难的不就是left、right、mid三个变量吗但实际做题你会发现二分的边界条件千变万化一不小心就死循环或者答案差1。我自己教了三年几乎每一届都有同学栽在“mid (left right) / 2”这个写法上——当left和right都很大时两数相加可能溢出。正确的写法是mid left (right - left) / 2。比模板更重要的是理解二分的本质在一个单调的序列上查找分界点。训练营第一周的二分题不是让你背模板而是让你判断“什么条件下可以用二分”。比如“最大化最小值”“最小化最大值”这类经典模型看起来是贪心题实际上是要二分答案然后写check函数。很多同学第一次接触这个模型会懵为什么答案本身是未知的我还要去猜它打个比方这就像在一个滑溜溜的坡上滑行你每次猜测一个点检查它是否在坡顶左侧然后不断缩小范围——只要单调性成立你总能找到坡顶。贪心专题也在这天出现。贪心本身没有固定模板核心是“每一步都做局部最优选择最终达到全局最优”。第一周的贪心题大多比较基础按截止时间排序按价值排序区间调度之类的。你要做的不是背题解而是学会验证贪心策略的正确性——尝试构造反例看看你的贪心会不会在某组数据上翻车。如果翻车了那就多半要用动态规划了。这个“一眼判断出一个题是不是贪心”的能力第一周不用很强但至少要开始有意识地培养。周三结束前建议至少独立AC三道二分题和两道贪心题而且每一道题都要能对着题解说清楚自己当时的思路。3.4 周四栈、队列与优先队列——从线性到带优先级周四的专题开始从“数组”过渡到“数据结构”。栈和队列本身不难难的是你是否能识别出一道题需要用栈或队列来解决。很多新手遇到括号匹配、单调栈这类题目第一反应是“我拿数组模拟不就行了”但这样做往往代码能跑通却难以扩展。第一周只需要掌握三件事栈用于“后进先出”的场景队列用于“先进先出”的场景优先队列用于“每次取最大/最小”的场景。优先队列的坑比栈和队列更多。第一priority_queueint默认是大顶堆取最大值很多人在需要最小值时忘了加greaterint结果答案完全不对。第二优先队列是容器适配器你不能直接遍历想调试只能逐个pop。第三如果里面装的是pair默认按第一关键字比较如果你需要按第二关键字比较得自己写一个结构体。比如Dijkstra最短路里的优先队列经常这样写struct Node { int dist, id; bool operator (const Node other) const { // 注意这里是反的让优先队列表现为小顶堆 return dist other.dist; } };很多同学第一次看到这个重载会蒙其实规律很简单priority_queue默认是大顶堆你重载时让“距离小的排前面”结果堆顶就是距离最小的节点。周四的练习做到这里如果能独立完成三到四道栈/队列/优先队列的应用题那这个专题就算过关了。尤其建议大家去把单调栈的经典题做一遍不管你以后打不打竞赛这个思维在很多工程场景里都能用到。3.5 周五综合题单与本周复盘周五不安排新专题了。新生组和进阶组会拿到一份综合题单里面混着这周讲过的所有内容模拟、排序、二分、贪心、栈和队列。这份题单的意义是逼你把知识串联起来用。很多同学会出现一个奇怪的现象单独做“二分答案”专题时很顺手但放在综合题单里就认不出来了。这是因为你在做题前已经知道了题的类型而真实的比赛里没人会告诉你这道题考什么。综合题单以外周五下午还有一次阶段小测。并不是要排名淘汰谁而是帮你查漏补缺。我辅导时看到过不少同学排序题和模拟题全对但一到贪心就卡壳甚至没有思路。这时候不要着急其实很正常——第一周大家都还在磨合期如果你做过小测之后发现了薄弱点周六比赛前还有时间专门补一补。周五晚上老队员会做一次线上的本周复盘把每一道综合题的思路串一遍。这星期训练营的规则很明确新同学需要至少AC全部的简单题和一半的中等题进阶组则需要尝试挑战一道压轴题。题量看起来不大但如果你能每一道都自己写出来而不是靠看题解补完的那这一周的收获会非常大。真正的学习发生在你卡住一道题、和它死磕的那段时间里不是在你看答案的那一分钟里。4. 周六训练赛现场复盘与罚时教训4.1 题目回顾与通过率复盘周六是训练营氛围最紧张的一天因为有一场时长三小时的限时训练赛。新生组五道题左右进阶组六到七道竞赛组可能直接来一场ICPC模拟。我们周六用的是自己OJ上的比赛模式提交就会判题。比赛结束后第一件事不是看谁AC了多少题而是看每道题的整体通过率。通过率低的题不一定难可能只是题面长、很多人被吓跑了。以我们今年第一周的训练赛为例新生组第三题是一道模拟题题面描述是一个排班系统读起来像一篇小的阅读理解字数快赶上英语四级的阅读了。这道题其实算法极其简单就是按时间排序然后检查重叠区间但全场通过率只有18%因为大部分同学花了很多时间在读题上甚至有人一看这么长直接放弃。这个现象太经典了。比赛里一个题通过率低大概率不是因为它算法难而是因为它“看起来”难。所以我在复盘时反复强调一件事拿到一道长题面千万不要从头到尾逐字读。先看输入输出样例反推题意然后看数据范围判断复杂度最后再回到题面里确认条件。这种读题方法第一周的周末比赛是最适合练的因为题目难度本身不大你读懂了基本就能写出来。等以后碰到真正复杂的长题面这个习惯能帮你省下至少二十分钟。4.2 赛时策略按通过率进场还是按难度进场训练赛开始后很多新生的第一反应是把所有题目从A到E按顺序读一遍读完之后又全部忘光然后从第一题开始死磕。这不是好的策略。我的建议是前二十分钟先扫一遍全部题目的通过人数找“提交次数多且通过率也高”的题目先做。用我们周六新生组的数据举例第一题有40多人AC第五题只有3人AC那第一题肯定比第五题容易得多先把容易的拿到手里建立状态。这里还要提一个东西罚时。在很多竞赛模式里你每提交一次错误答案就会在最终排名里多一段罚时。如果你不确定答案对不对不要急着反复提交先在本地多测几个数据。很多同学平时在OJ上刷题习惯了“提交错了再改”的随性节奏比赛时也这样结果排名被罚时压得很难看。第一周你不需要去争什么排名但要有意识地养成“先验证再交”的习惯这个习惯越早建立越好。比赛过程中的心态也很重要。我自己收过一次新生训练赛的统计发现很多人在比赛进行到一个半小时时就不再提交了剩下的时间要么发呆要么反复提交同一个WA的代码。如果你也这样我建议你至少把每一道没做出的题都写上暴力代码哪怕只能过部分测试点也能拿部分分。竞赛不是要么0分要么满分而是尽量多拿分。这个理念第一周就要开始建立。4.3 赛后补题比写题更重要的一步训练赛结束之后重头戏才开始补题。很多同学赛后一看分数觉得自己还行就直接关电脑休息了这是这段时间最大的浪费。正确的做法是比赛结束后当天必须把没AC的题补完。补题不是看一遍题解然后抄一遍代码而是逼自己在题解的提示下自己写出AC代码。如果你发现自己看了题解还是写不出来那说明这个题的知识点你根本没掌握需要回到本周的专题里再做几道同类题目。SMU寒假训练有一个很硬性的规则赛后24小时内必须提交补题记录老队员会抽查你的补题质量。如果只是复制粘贴别人的代码一眼就能看出来——因为你的通过时间和提交习惯会暴露一切。我们设置这个规则不是要为难谁而是很多人确实会“当时懂了第二天全忘了”补题这件事就是为了对抗这个遗忘曲线。我记得去年有个同学训练赛AC了四道题看上去很不错但他没补的第五题恰好是贪心专题里最典型的区间调度题。第二周训练时再遇到同类型题他又卡住了不得不回头翻第一周的题解。这个例子很能说明问题赛时AC只代表了那一刻的状态补题理解了才是真正掌握了这道题背后想考察的知识点。5. 第一周常见问题与避坑速查5.1 编译不过与运行错误每天辅导新人的时候出现频率最高的问题就是提交报错却看不懂。我整理了一个第一周最常见的错误速查表如果你想不起来建议保存一份报错信息常见原因解决方法Compile Error变量名打错、括号不匹配、头文件不存在打开本地编译器看详细报错行号别瞎猜Runtime Error段错误数组越界、栈溢出、空指针检查循环边界vector访问是否越界递归函数是否死循环Runtime Error除以零某处除以了0变量检查分母的取值尤其是枚举和模拟题里Wrong Answer算法思路有误或边界情况没考虑构造小规模随机数据对拍定位到具体错误输入Time Limit Exceeded复杂度太高或输入输出太慢先算复杂度n范围内O(n²)可能直接超时也别忘了加上取消同步的两行代码这里特别想强调一下段错误。很多大一新生第一次遇到段错误第一反应是“我的代码是不是中毒了”。其实绝大多数段错误就是你数组越界了。举个例子题目说n最大是10的5次方你在代码里开了int a[100000]但循环里不小心让下标跑到100001了这就会触发段错误。第一周建议大家尽量用vector而不是裸数组因为它自带一些边界检查虽然vector的[]也不会检查越界但至少不容易在开错大小时直接崩掉。5.2 TLE超时不是玄学是复杂度没算TLE大概是第一周第二常见的报错。很多同学看到TLE就慌觉得是机器太慢或者OJ故意针对自己。其实绝大多数情况就是你的算法时间复杂度太高了。第一周遇到TLE不要急着改代码细节先拿出纸和笔算一下n最大是10的5次方你的代码是O(n²)那循环次数是10的10次方在1秒时限内跑完几乎不可能。这时候你要做的不是把cin换成scanf而是换一个O(n log n)或O(n)的算法。也有一种比较隐蔽的情况算法复杂度本身没问题但是常数太大。比如你的循环里频繁调用了sort或者每一组数据都创建了一个巨大的vector并反复清空。这种问题在数据规模小的时候看不出来数据大时会让你卡在TLE的边缘。第一周如果你遇到这种“看起来应该能过但就是超时”的题建议不动主逻辑只优化那些明显冗余的操作比如把反复清空的数组改成局部变量把sort移出循环加上前面说的ios::sync_with_stdio(false)。很多时候就这么几处小改动就能把超时变成压线通过。5.3 心态与节奏一周刷多少题合适最后想聊聊题量和心态。第一周不少人问我这个问题“学长我一天要做几道题才正常”我的回答是更该问的不是题量而是你到底有没有卡住、有没有想通。一天AC十道水题不如卡一道题卡三小时然后在提示下AC那三道题的收获大。训练营第一周的最低标准大概是30道左右的练习量其中六到八道题是你独立思考后AC的剩下的是在题解辅助下弄懂并自己写出来的。如果你能写出这些你已经比很多“刷题数量100”的同学扎实得多。心态上第一周最容易出现的问题是“同伴焦虑”室友一天AC了十道题你只AC了五道就觉得自己不行。但你可能没看到室友之前已经刷过几百道题你只是刚刚开始。编程竞赛是个长跑第一周拼的不是绝对题量而是你是否建立了训练节奏。把这三天写成一句话第1天熟悉战场第2天练基本功第3天开始上强度第4天接触数据结构第5天综合应用第6天检验成果第7天休息复盘。如果你在这个节奏中某一天没有完成当天目标不要通宵硬撑。训练营不是靠熬夜堆出来的我见过太多因为第一周熬夜导致第二周完全脱节的同学。每天保持七到八小时的睡眠白天精神集中地写题晚上留出半小时复盘今天的错题这比多刷两三道题划算得多。6. 写在后面第一周你可以带走的几件事其实写到这里我脑海里已经浮现出很多熟悉的面孔去年坐我旁边那个第一次交题就CE的女生今年已经能带新生组刷题了前年那个因为一道二分题卡到怀疑人生、差点退营的男生后来跟着训练一路打进了区域赛。第一周看起来只是整个寒假训练最平淡的一页但很多人的转折恰恰就发生在这里。我在这里分享几个自己带训练时总结出来的小建议这些不写在任何题解里但亲测有效。第一给自己准备一个专门的错题本不抄题目只记“我错在哪、为什么错、下次怎么避免”。第一周你可能觉得没必要但到了第三周翻着这个本子复习会非常高效。第二遇到卡了一小时以上的题可以问人但问之前务必先说出自己的思路卡在了哪一步这既是尊重别人时间也能帮你捋清思路。第三每周日给自己打印一张下一周的练习表不用太细列清每天要完成的专题即可有了一张表你才不会在OJ上毫无目的地乱点。这个寒假训练才刚刚开始第一周结束后还有动态规划、图论、数论这些更有挑战的专题等着你。如果这个周末你可以很清楚地回答自己我做了什么、我卡在哪、我下周该怎么调整那这个第一周就已经超额完成任务了。