2019清北学堂·游记

被巨巨们被虐到自闭的八天


Day 1

​ 一早上就考了一场试,T1刚开始以为是线段树,后来嫌麻烦用Deque做了,考场预计得分80左右。T2看到数据范围以后的确想到了正解状压DP,但是因为没有办法解决加入时间以后变成三维DP会空间不够的问题,最后还是用了dfs来解,觉得18的点完全没有办法卡过去啊,本来准备打n=1的情况下的DP的也没时间了。T3的话完全没有细看,暴力完全没有时间敲,最后还是不了了之。

​ 预计得分:80+60+0=140

​ 实际得分:100+0+0=100

​ 看到成绩的时候吓了一大跳,因为完全没有想到T2会爆零,去检查了上交的程序才发现交成了有问题的,样例都没有过,全部出了零,真·爆零(笑)。T1竟然是正解,看好多人都只拿了90,也幸亏T1稍微稳了一点才没有太丢人。T3好像没人做出来的样子,但是有几个人输出0竟然拿了5分。这次考试时间的分配有很大问题,T1题目读反了导致我白打了一个线段树,在发现我手模结果和样例输出不一样才反应过来,以后做题要先理解样例再敲程序了。花费太多时间在T1上也导致了我其他题都稍微有些仓促,可以说这次考试中我很多值得可惜的地方了。

​ 中午随便吃了点什么,去了ptb昨天晚上去的小饭店,味道异常的不错,但是他竟然把鸭肠看成了牛肚……

​ 下午开始讲题,T1这样做就可以了,大家出错也大多是什么没有清空之类的小问题,没有什么区分度。T2其实已经尽力了,只能说对于DP的理解还很不到位吧,原来最终得到的价值可以直接通过状压算出来,所以大可不必存下价值,而可以把时间放进数组里面去,这样就是二维了。还有一个小优化就是第二维”位置”只可能是状压中已经为1的点(因为0的点还没走到过怎么可能是当前的),所以只需要枚举为1的就行了,这样DP的空间复杂度就到了可以接受的范围。T3概率题实际上还是没有弄的很懂,回房间再琢磨一下……

​ 查了一些发现老师竟然是十二省联考“皮配”的出题人,怪不得这么钟爱DP,课后给我们拓展对的题目也有好多DP题。有一道“子矩阵”特别喜欢,状态转移方程是:设f[i][j]表示在这个r*m的矩阵中,在其前i列中选择j列(且选的列中包括第i列),组成的子矩阵中,最小值(即其相邻元素的差的绝对值的和的最小值)是多少。具体是:
$$
f[i][j]=min(f[k][j-1]+sum[i]+c[i][k])
$$
sum是这一行所有元素的值,c则是i和k两行的差的绝对值,可以说是很玄妙了,很喜欢这道题。

​ 还有就是一些 骚方法/思路 了,包括但不限于对顶堆斯特林公式,和已经知道的哈弗曼树,觉的都是很有用的小方法qaq

2019.10.01 于巨化宾馆


Day 2

​ 首先祝贺lyq大佬成功取得rk1!!

​ 今天的考试总体上还算不错,但还是有一些遗憾在里面。今天的T3把能行和不能行的状态输出反了导致平均30+的题我一分没有得。T1和T2做起来都还算得心应手,基本上在一个小时以内把自己的思路基本实现了,需要修改的手残的地方相对以前少了很多,以此节省了很多时间。然而对剩下的时间的运用仍然不是很恰当,因为前两题做的速度太快,我心里并不是完全相信他们的正确性,于是在考试进行一个小时多(九点多)的时候开始了对拍,拍了一个小时才让自己安心,然而并没有发现自己的程序的大问题,到是发现T2的INF开小了,也不算完全没有收获。但是因此浪费了很多思考T3的时间,导致暴力敲的略赶,出现了爆零的情况。

​ 分析一下我自己的程序,T1思路没有问题。T2算错了复杂度,最优性剪枝在构造的大数据面前特别无力,本来自以为是O(nlogn)被最后几个构造数据卡成了O(猴),但是意外的在随机数据下表现优秀。T3非常傻逼的把可行和不可行的输出打反了,平均30+的题目我爆零了,rk1→rk5

​ T2的正解是两个前缀和+双指针(尺取法)+链表,主要在于一个关于前缀和的如何求出区间合并最小费用的结论(在一个由L到R的区间内,把这些点聚集到mid时才是最优的),(然而我只想到了最无关紧要的链表qaq)。T3一如既往的难,主要思路是二分图匹配,要分成两个subtask来写。

​ 晚上据说要讲数据结构,然而只讲了树状数组。第一次知道了还有这么多用法,要好好巩固一下。前几道题(像【NOIP2010】关押罪犯、【Apio2008】免费道路)我基本都做过,但是有一道bzoj的“跳跳棋”我还是没有很懂,需要再继续琢磨。树状数组的几道题到是都很有新意,都是很巧妙的方法。如抛弃了传统树链剖分方法的“上帝造题的7分钟2/花神游历各国”就是一个很好的例子。

​ 生活方面,有是口腔溃疡的痛苦的一天,这几天饭都没有吃好,希望明天早上能好起来(笑)

​ 2019.10.02 于巨化宾馆


Day 3

​ 今天的lyq依旧ak。

​ 今天的考试仍然爆炸,不过相对于在学校来说,这里考试的氛围更浓,心态也更紧张一些,相信对于CSP来说是一个很好的积累经验的机会。T1审了十分钟左右暂时没有正解思路,于是先开了T2。T2写的异常的顺手,思路综合了很多熟悉的算法,所以做的很快,十点不到就结束了代码和验证两个部分。万万没想到,这次复杂度算对了但是被卡常了,只有100→60,真的自闭了。T3竟然炸空间了,我也就是开了很多1e7的数组而已(逃),以后还是适当缩小一下数组范围,思路到是没有什么问题,加上一个并查集的优化(我想到了但是删掉了)就可以卡过。T1直到最后也没有什么很有新意的想法,据说xlb打了启发式合并拿到了60,pzh orz。

​ T1虽然叫背包问题,看上去也很像(就是)完全背包,但是其实正解是跑最短路,和我们以前做过的一道“货币系统”很相似,可惜当时图方便用了DP,这题数据范围相比货币系统大了不少(1e9),DP只能拿到20,以后做题还是吸取教训,不能偷懒了。T2的输出被卡常问题很大,printf输出char型竟然比putchar慢了那么多,40分诶,亏我考完还挺高兴。T3完全就是傻,低级错误一分没有,玩弄我心态。

​ 晚上讲到了最小生成树、tarjan、拓扑等基础算法。听起来好像是比前两天基础了很多,但是实际上每道题的思路都非常难想。其中有一部分陈雪阳学长之前已经给我们讲过了。有一道题是让我们找从1开始再回到1能经过的点的最大数量。我们可以把1分成两个点,一个作为起点一个作为终点跑最长路,非常的巧妙。

2019.10.03 于巨化宾馆


Day 4

​ 保持每日爆零一题的进度

​ 今天的考试比前几天都难了不少,今天我一道题的正解都没有想出来,T2和T3各打了一个暴力,没有什么复杂的思路,都是很简单的顺着题目意思的模拟,没有什么技术含量。还是没有出什么太大的问题,T3的暴力半个小时就完成了,据说有好多人都被卡了精度(小声bb)。然而T2的freopen写成了.ans而非.out,全部输出文件错误,白给了50分。

​ 题目考察的知识点还是不算很难的(除了T3),就是思路非常难想。T1刚刚看到的时候真的吓了我一大跳,数据范围是二的二十五次方,空间限制5MB。就没有细想。考完试才反应过来二的二十五次方也没有特别大,就算储存下来也至少可以把二的十八次方以内的做出来,因为被二十五次方吓到就白给了20+分。T2的话的确用到了一个和莫队很相似的思路:分块,可惜我既不记得莫队,也不记得分块,只能打了50分跑路(甚至爆零了)。T3线段树很好想,但是没有时间写了,其实要增加的也不多,而且逻辑简单,但是我只是在最后一秒跑对了大样例,已经没有时间把线段树加上了。另外,T3还可以用矩阵来做(并不是很会)。

​ 练习的话我觉得难度梯度挺不错的。一开始入门的几道DP题都不是很难想或者很难理解,但是后面的几道题开始越来越难,在DDP达到了顶峰(后面就不会了)。DDP仍然不是很懂,不知道明天的数论会不会更加自闭。

2019.10 04 于巨化宾馆

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×