训练复盘记录

 前言:我,zwr,qzz三人组成Hard_to_Name临时队从南昌邀请赛回来以后,由于我们Alchemist队学姐无法参加集训,正好前阵子qzz学长也是和自己配合过一段时间,又有意愿再打一年,于是正好加入我们队。于是现在这个队是我,qzz,lpy三人。计划是每周训练一次,假期的话,除了集训时间外每周集训两次。团队配合是十分重要的,每场训练都要依照惯例写复盘,反思,补题。希望我们最后能克服万难,取得区域赛金牌。


(2019-6-9)2018 ACM-ICPC Syrian Collegiate Programming Contest

注:本场qzz未参与,复盘by LPY

1:00-1:20
lpy cmx都正看,发现A、B两道水题lpy先写完A并1A,cmx写完B后1A,接着开始看C题
1:20-2:00
开始讨论C题,lpy开始写C,cmx开始看D、E、I,并确定D题是一个dp题。
C题是一个关于搜索的模拟,由于情况考虑不全多次WA后暂时放弃。
cmx看出I题是一个求凸包的最小覆盖圆的问题,由于cmx和lpy都没确定做法与板子故暂时放弃。
2:00-2:20
lpy继续检查C,发现只考虑了起点->终点的情况为考虑终点->起点情况,修改后继续WA。考虑让cmx重新写一遍C。
cmx开始写D并1A。
2:20-3:00
开始看H题,发现H是一个判断是否构成环的问题,讨论后发现求最值这一要求具有迷惑性。lpy提出考虑有向欧拉回路,即考虑每个点入度是否对于出度。
lpy开始写H,cmx开始检查C并考虑重新写C,lpy AC掉H后,cmx开始重写C。
3:00-3:30
cmx写C的同时,lpy开始看F、G、K题,稍微构思出G题的可能构造方法,发现K题是一个单调栈连边+最小染色问题
cmx基本写完C,lpy开始写K,cmx开始思考F。
3:00-4:00
lpy写完K,发现和C一样WA在第二个点,故考虑特判,发现C题未考虑起点直接连终点情况,修改后AC掉C题;K题未考虑点仅未1的情况,修改后未能AC。
lpy继续debug K题,cmx开始想F、G,发现F可能是状压dp,但不能确定如何快速计算转移。
4:00-5:00
lpy继续debug K题,并考虑直接染色,不找环;cmx提出四色问题,将可能颜色数提升到4,继续WA。
开始讨论G题,lpy认为将点分为3中继续讨论,并预先构建大环,cmx认为可能考虑直接连边,并开始写G。
lpy开始看F,大致确定为状压dp,设计了一个 O ( t 2 t + 3 t ) O(t2^t+3^t) O(t2t+3t)的算法,但 3 t 3^t 3t部分不会优化。
5:00-6:00
cmx写完G题,提交后RE,开始检查G。
lpy检查K后发现,点搜索的顺序对答案可能有影响,故考虑将图改为有向图,利用Topo排序继续染色,尝试后仍然WA。
cmx发现G题RE是

for(auto item: V)
  V.erase(item)

这种遍历时改变遍历容器的操作造成的,修改后AC掉G题。
lpy考虑K题连有向边的方式:从开始的从左向右修改为按关键字 h e i g h t height height从大到小进行连边(从而图变为Cartesian_Tree中添加一些前向边),修改后AC。

总结与反思:
1.在写C题时,一开始想减少计算次数故少讨论几种情况,对于这种模拟题,应该先考虑全面不进行剪枝,在提交TLE后再考虑剪枝。
2.计算几何还需要多加练习,过的较多的I题我们束手无策。
3.尽量先多读题,多讨论。
4.注意遍历时对容器的操作(这种问题一般python中很常见)
5.对于图论题尽可能先多构几个特殊图进行判断debug,考虑图的特性设计算法。


(2019-06-16) 2018-2019 ACM-ICPC Asia Seoul Regional Contest

06.16 17:00-22:00

复盘by QZZ

17:07 开场跟榜发现D是水题,qzz开始敲。lpy和cmx从两端读题。

17:17 qzz过了D 题,lpy想出A题做法并上机写。cmx和qzz读L、K题。

17:38 lpy过了A题。qzz和cmx讨论觉得K染色可做,qzz开始写K。

18:00 cmx和lpy讨论出L的贪心策略。qzz觉得要再确定一下染色细节,暂时下机,cmx上机写L。lpy读E。

18:17 qzz想好细节后继续敲K,lpy想出e的二分做法。

18:30 qzz过K,cmx继续写L。lpy和qzz讨论确认e的做法可行后继续看其他题。

18:56 cmx过L,lpy开始写E。qzz和cmx读B、F、J题。

19:30 E题wa,lpy和qzz开始debug;cmx觉得F题数据范围小可以递归处理,上机写F。

20:13 讨论后发现E题v=0时需要特判,修改后ac。

20:25 qzz和lpy讨论后觉得B题数据小可以暴力求d函数然后n次spfa松弛求S函数。cmx下机debugF题,qzz开始写B题。

21:00 cmx发现有些情况括号匹配不对上机修改。qzz和lpy讨论得出J题深搜做法。

21:16 cmx过了F题,qzz继续打B。

22:25 B题wa,cmx读代码发现qzz部分题意理解错误,修改后ac。lpy打J题,可惜没来得及完成调试,但思路应该没问题。

总结与反思:

  1. 需要熟悉并掌握更多经典模型从而简化编码逻辑,如K题可以使用2-sat、L 可以用栈处理。
  2. 除了水题,每个在写的题目最好有至少2人知道用的方法,方便debug和及时发现方法漏洞。
  3. 注意边界值是否需要特判。
  4. 如果觉得复杂度在能不能过的边缘的话可以参考过题数,过的人多说明可能数据不是很极限orz。

(2019-06-23) 2017-2018 ACM-ICPC East Central North America Regional Contest (ECNA 2017)

复盘by CMX
本次训练从13:00到18:00

13:04 cmx看CH,lpy看AB

13:10 确定水题C,cmx打C

13:20 lpy确定水题D

13:22 cmx AC C, lpy 打 D, qzz看ABH

13:29 cmx和qzz讨论后确定H,是一个平面八连通dfs/bfs/并查集染色,我看J

13:35 讨论后基本确定J,认为是个略复杂的模拟题

13:38 lpy 2WA后AC D, qzz打H

13:45 qzz AC H,开始看E。cmx确定F,简单的树上计数,开始打F

14:04 cmxAC F,lpy打G,cmx,qzz看E

14:21 cmx和qzz确定I,基本上是二十四点的计算

14:24 cmx打J,lpy暂停

14:44 发现J题意理解有偏差,中途纠正,lpy AC G

14:51 cmx暂停,qzz打I

15:17 cmx继续打J

15:30 qzz继续打I

16:00 cmx继续打J

16:14 qzz AC I

16:18 lpy突然AC B(原本是要求圆公切线的题,他把每个圆圆周等分500000 / N份,然后套凸包模板居然过了!厉害!)

16:56 J题弄得cmx自闭了,qzz与cmx多次沟通依旧没有很好地交流想法,后来qzz帮助cmx debug 成功AC J

16:56-18:00 讨论确定E的解法,认为是一个状态搜索,lpy认为直接暴力效率有问题,认为拓扑排序+删点更好,用极限速度打E,最后没有过(后来看题解,直接暴力效率没有问题)

总结与反思
1.cmx对于复杂模拟题逻辑依旧把握得不是很好。另外需要加强与队友的交流,qzz的想法是完全正确的,遇到障碍的时候不能总想着自己的方法怎么继续。
2.圆的问题,转化为等分多边形,在精度不高的情况下完全没问题的。
3.lpy有时候会把问题想复杂,有时候解决问题要有直截了当的想法。


(2019-06-28) 2017-2018-acmicpc-southwestern-european-regional-programming-contest-swerc-2017-en

复盘by lpy
这场比赛qzz打过,所有qzz挑的没做过的题写
lpy与cmx现场,qzz远程
比赛18:20 - 23:20
18:20-18:30 qzz写了F题,lpy看A题,和cmx讨论后确定直接模拟

18:20-19:30 lpy写了A题,cmx写了J题并通过,开始主要讨论G题,qzz认为直接二分图匹配便可以解决,lpy认为是费用流,先交给了qzz打

19:30-20:20 qzz打出G题并通过,cmx开始考虑E题(与lpy讨论后认为是一个DAG上背包);确定K题为旋转卡壳求多边形宽度,C题可能是一个状压求转移矩阵+矩阵快速幂(但由于认为时间上过不去故暂时放弃),D题lpy认为是trie+dp

20:20-21:10 lpy开始写D,写完D后发现部分细节理解有误,开始调试;cmx开始写E题。lpy增加了一维dp转移后AC掉D,cmx调试E后AC掉E。qzz开始套板子打K题。

21:10-22:00 qzz的K题神秘WA,lpy与cmx发现C题过的人很多,开始着重看C题

22:00-22:40 三人讨论后发现状压求转移矩阵+矩阵快速幂时间上可以通过,lpy开始写C题,调试后AC掉C,qzz的K题继续WA

22:40-23:20 三人开始各种调试K题(但没想到换板子),一直WA

总结与反思
1.找题时可以团队沟通一下
2.求解旋转卡壳时,多边形宽度与直径不同,K题是求解宽度而我们板子一直打的直径,尽量多准备计算几何板子
3.计算时间复杂度时要仔细,1s对应1e8次操作


(2019-07-02) BUAA Spring Training - 13 - Team

由于春训比赛正式,所以记录有不完整之处。——by cmx
比赛从14:15分开始
14:41 lpy 确认B是简单模拟,AC B
14:55 qzz确认G,AC B后开始写,然后AC
14:57 cmx在这个过程中思考I,和lpy讨论后确认贪心,AC
15:20 C也是水题,lpy写大量分类讨论,AC
15:44 三人讨论确定A qzz AC A
16:20 cmx确认了J,是一个凸包+思维题,AC
17:18 cmx和qzz很快确认H,二分+TwoSAT,cmx套板子AC
17:56 D由qzz成功想出了dp解法,讨论后顺利AC,这题很有意思,qzz用了一种松弛思想,非传统dp思路,可以学习。
之后到18:15 lpy写了E,是一道搜索题。但是一开始因为没考虑三角形任意两边之和大于第三边导致WA,之后又因为TLE,一直没法过,尝试了一些优化也无计可施。事后发现,三角形一边被使用后,没必要去扩展另一条边,因为这样肯定不优。树不会因为有短分叉而长得更高。但当时没有人意识到这么浅显的一点。

总结:这次比赛配合很不错,是以往训练的成果。除了一些题目写的安排的次序之外无可挑剔。当然,三人的个人实力都还需要增强。


(2019-07-03) BUAA Spring Training - 14 - Team

比赛从14:00开始
14:07 lpy AC K
14:18 qzz AC A
14:43 cmx推出了公式,AC G
14:46 lpy 发现C题是之前北邮校赛被坑过的内存换页opt算法。2WA后 AC C
15:57 qzz尝试了B,这是一道略有变化的旋转卡壳题。
17:05 cmx 1WA后 AC了I,这是一道搜索题,一开始特殊情况没考虑。
17:30 qzz 考虑到了平行的情况,AC B
17:39 lpy AC E
此后时间没有再过题,原因是J题理解错了题意,而最可能想到的D题,当时大家思维都不是很明确。导致最后只AC 7题

总结:原本这次比赛配合海星,但是J的题意理解上,告诉我们要加强英语阅读能力,另外,像D这种实际上并没有用到什么算法的思路题,大家还是要留心眼。
另外,yky好厉害,一人就AC了7题,我们的个人能力还是要加强!


(2019-07-05)2019 BUAA Spring Training 15 - Before Summer Holiday

比赛从14:00开始
14:11 lpy快速 AC I题
14:12 qzz用我的大整数模板,快速AC H题(2的幂次)
14:34 cmx连凑带蒙蒙出了G的递推公式 AC G
15:27 cmx讨论发现了一道树上启发式合并,因为思路不清晰,2WA后AC
15:55 qzz发现了一道费用流,1WA后顺利AC,另:这题我们没有过目
16:21 经过讨论后,lpy发现了J的思路,很好的关于曼哈顿距离的思维题,成功AC
剩下的难题在后两个半小时进行讨论,但因为难度过大没有结果。
18:34 lpy仅凭一己之力,推导公式:狄利克雷卷积+莫比乌斯反演,神乎其技地AC了难题C
至此,我们全队AC7题

总结:配合得很好,另外lpy的数学功力确实很扎实,以后向他学习!另外,以后大数还是用Java写,毕竟真实比赛场合不可能直接粘板子。


(2019-07-07)2019 BUAA Spring Final Training

比赛从14:00开始
14:18 cmx AC F(中间出了小差错,以后先理清楚思路)
14:24 qzz 尝试 D,1WA
14:32 cmx 拓扑排序 AC C
14:36 qzz AC D
15:01 cmx AC H
15:38 lpy AC A
15:49 cmx 1WA 后AC E,注意1不是素数!
16:20 lpy尝试B,2WA
16:40 cmx尝试M,讨论后我认为先尝试并查集的启发式合并,(后来发现lpy的解法也是对的而且更优雅),1WA后AC
16:46 lpy AC B
17:00 cmx 2WA 后 AC M
17:16 lpy AC L
17:58 lpy 2WA 后 AC K
最后的时间,我认为计算几何题应该不会有人成功,所以开了J这道模拟题,没想到比料想的复杂,最后没有成功AC,而其他选择计算几何题G的队伍都成功了,不得不说是一大失误。
这直接导致了原本rank1,被xsy,zyy队反杀。

总结反思:加强计算几何能力!加强计算几何能力!


(2019-07-11) 2018-2019 ACM-ICPC Pacific Northwest Regional Contest (Div. 1)

本场比赛只有cmx和lpy参与。因此特意挑选了比较水的一场
AJBLHCGD 都是水题,1A迎刃而解
剩下的题目我们却极其惨烈。首先一道很简单线段树的题我好久才想到,1WA后AC,而LPY想出了一道网络流构图,思路完全正确,最后错误的原因居然是n和m弄反了(天哪!然而debug确实没发现)

K其实是一道裸搜索,但是当时状态不好,打了又改改了又打,最后不了了之……
M应该不难,却没有思路……

总结:比较失败的一场,感觉自己状态很不稳定。另外,通过两个人比赛才了解到qzz对于思路和debug的重要性,ICPC到底还是一场配合的过程,1+1+1>>3
好好补题QwQ

中文队名定为试炼者,寓意不断自我试炼才能炼“金”成功(这年头,正经的队名反而好中二啊QwQ)


(2019-07-15) 2018 Multi-University Training Contest 6

本场比赛从13:00-18:00

cmx倒着看题,lpy从开头看题,qzz从中间看题,预计以后也是这么分配。

13:38 经过一段时间思考,cmx确定L是一道物理模拟题,比较水。在2WA后 AC,而LPY猜测A的结论,最后猜测成功,2WA后AC

14:18 qzz在看完G题后看I题,确定了I题思路,顺利1A

14:27 lpy凭借一己之力推出了公式,一次性AC B题

此后cmx主要思考G,但不得要领,qzz则尝试了C题,没有成功

16:06 lpy再次凭借一己之力推出了K的解法(ORZ),顺利1A,tql!

此后讨论G,依旧没有思路,又思考和讨论了D,cmx觉得,可以变成带权的集合覆盖问题,然后可以费用流解决,打完才发现自己建图有问题,另外:集合覆盖问题是NP难问题。这题题解是dp。

总结:今天lpy发挥很棒,未来我们也要多多学习数学了(hh)
补题记录:D,G

你可能感兴趣的:(其他)