NWPU春季赛,题解与反思

正式赛题目:https://www.luogu.org/contestnew/show/15288

兴冲冲去打校赛。结果:三题死。爆炸的理所当然,也确实反映了自己的不少问题。


上午热身赛5T,A了4个(热身赛比正式赛A的多系列==)不知为何题目一直没有放出来,目前也没有题解。(@Acoder出来写题解……)

ABD裸送,关键是C(题目名:水 题)和E。

E题是跟某位大佬讨论才做出来的。
题目描述:n个节点(<=100),找出长度为k(<=10^18)的回路,求每个节点经过的回路数量。

题目相当于求以这个节点为回路的起点,求长度为k的回路的数量。这里用到了邻接矩阵乘法:邻接矩阵的k次幂d[i][j]代表从i经过k步到达j的方案数(加法原理&&乘法原理)。矩阵快速幂即可。
注意有坑:可能有重边,需要多次累加而非一次赋值。

C题:n(<=105)个元素,q(<=105)个询问,每次求区间在[i,j]范围、数值在[a,b]范围的数的异或和。
首先想到先排序,把问题转变为新下标在[s[a],s[b]]之间,原下标在[i,j]之间的异或和。这样可能可以初始化区间异或和来简化问题。
然后呢?分块+线段树?树套树?于是跑路了。并不怎么会数据结构题。


下午的比赛,被A题彻底卡死。看到那么多人AC了,题目又偏水,一直试图做出来,一直莫名WA,换了种暴力做法继续WA。考完结果告诉我数据有问题……
(彩笔不会切割线定理,究竟是谁的锅?)

但关键问题并不是一道题的得失。在赛场上,有一道题目,排名在你后面一排的都A了,而你还在大红W A大紫R E,你还能保持住良好的心态,继续思考别的题目吗?

显然,我在这点上失败了。后面几乎每看一道题,看着看着都要回来改改A题。结果导致很多本来可以做出来的题目zz了。当然菜也是一方面,不然N道题直接水过去了;但更关键的是心态问题,在紧张的ACM赛制下,心态的好坏是导致最终成败与否的最关键的临场因素。

之前还有一段小插曲:我搞错了开始时间,1点开始的比赛,我以为两点才开始,于是蜜汁失去了45min。时间的失去不是最重要的,更为要命的是对心态的打击。再加上A题没搞出来,节奏彻底乱了套。所以下面的许多题,不是脑子糊涂就是各种zz。以这样的状态,原地爆炸实在不出所料。

B题==乱搞,n年前研究过,后来做了个不太一样的题目,结果现在想的太多,凉了。

万恶的油漆桶

就是这玩意……这道题只能取长为1||宽为1,现在长和宽都随便取,完全不一样……

C题:裸送。

D题状压dp,之前搞过很多,结果考场上脑子糊涂了,在想是不是有可能最大费用最大流……
另外,现在才知道,当年写的状压非常蠢。一般的状压,是可以按自然数顺序枚举状态的,完全不需要按二进制中1的个数排序……简直自找麻烦。不知道有没有人和我当时一样==

E题:组合数题。高中水题,现在都不会了(被费马小定理吓跑了,然而只是用来求逆元的==)

F题:树形dp,想到树上距离不构成三角形只有链以及”正难则反”基本就稳了,但是考场上光想着LCA以及LCA完了怎么办……如果当时能细心思考一下,其实是可做的。

G题:裸送。

H题:优秀的dp题,但数据规模吓人,连n^2都不敢写了……正确的顺序是先写暴力dp,再考虑优化。

I1&I2:spfa乱搞。建图啥的不太想研究。但要是不会优化spfa,就算它死了,还是能搞你。

SPFA死了
(from洛谷大佬Chtholly)

其实仔细想想,spfa的过程中,对当前节点的某个方向,直接相连的距离为0并入队首,以及拐弯相连的距离为1并入队尾,实际上和建图的方法有异曲同工之妙。首先更新一个节点相连的所有点,要么两者距离为0,要么距离为1,不可能有更多了。当完成距离为0的点的更新,并开始更新距离为1的点,实际上相当于完成了std算法蛇皮建图对一个线段节点的一次更新,并拓展到相邻联通的线段节点。
另外注意到,当任意节点距离只能为1时,spfa和bfs是相同的,因为没有已经出队的节点会被重新入队并松弛。当然这并不代表spfa活了==也许可以看作允许一点容错的bfs吧。

J题:故事写的不错,然而这次轮到本菜身败名裂了==

穹链剖分

(From 洛谷某大佬,id忘了==)
那就剖吧。不出意料的无人生还==

这次比赛,题出的好(劝 退 树 剖),难度适中(两 题 进 队),覆盖知识点广(花 样 D P),又比较符合实际背景(Kokoa 心 爱),解法也比较自然(蛇 皮 建 图),给出题人点赞!

Kokoa???

(from bilibili,制作组竟然搞错了心爱酱的名字?)

以上纯属调侃,勿认真。

该炸的炸完了,那么,然后呢?

实话实说,出题人确实下了一番功夫。也很感谢这次比赛,暴露了我隐藏的不少问题。

1、心态。放下那道题,或者交给信赖的队友。
2、时间策略。首先对题目难度的正确估计,判断是否可做;然后在此之上合理分配时间。显然本菜高估了许多题的难度系数,导致时间分配非常不合理。
3、对算法时间复杂度的熟悉。比如D题,数据范围已经透露了正解,就不要胡思乱想了。网络流的数据范围在几十到几百之间,状压dp一般不超过20。要是实在不知道复杂度,还可以用calc计算。
4、对一些方法的半知半解。比如线段树和树剖之类的算法和数据结构,还是停留在解决模板题的程度。这好比会dinic但不会建图,会dp但找不到状态,一句话:没卵用。多练题吧,唯有刷题才是王道。

总之,这次比赛敲响了警钟。是时候清醒一下了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值