按比赛时的开题顺序写一下总结、反思、大概题解,以及以后的训练规划。
A题大概题解:
简单讨论了一下。注意到题目要求的是变换到目的串的任意排列的最小花费,想到对两个串都按字典序排序,在B串中找到第一个大于等于A[0]的元素,之后一一对应,如果B[I]>=A[J],ans+=A[J]-B[I];否则跳过B[I],最后剩下的A中的元素与B中的元素再一一对应。一发过。
看榜,开F。F题是一个比较难想全的容斥,卡了很久,中间换题把C题一发过了。
C题大概题解:
把权值最小的点与所有点相连。
之后我想E题,水兄和学弟调F.一发过。
![](/qrcode.jpg)
E题从题意结合时间复杂度来看,思考时确定正解应该是nlogn复杂度的算法,想到了树状数组。但是不知道怎么去实现怎么快速地找到唯一的使一个数成为“good”的元素。水兄想到了set,可以nlogn实现(大概是吧?)交上去,超时,加读入挂,超时。考虑能不能不使用set,想到了维护前缀数组。TLE四次,封榜过了。
之后B题一起讨论很久也没有找到正解。五题结束。
反思:
1.没有认真思考H题,在回来的路上看到知乎上的题解(简单bfs),懊悔不已。
暴露的不足:对于看起来很难的题不敢深入去想。
原因:做题不够。信心不足。
2.没有快速地想出E题,导致F题卡了很长时间才做出来时,没题可写。
原因:做思维题不够。
3.在讨论B题时,其实我有想到一个性质,但是觉得没什么用,没有说出来,赛后请教发现那个性质就是二分图(正解)的苗头。因为我做二分图的题太少,导致我想不到二分图,导致我没有说出来,没有给队友提示,导致没出B题。
原因:没有深入理解数据结构的性质与应用。
整场比赛大部分的思路是水兄提出的,绝大部分的代码是水兄实现的,可以说我拖了水兄的后腿。(换个脑洞大点的数学好点的也许能捧杯?)
平时做题量以及对题目的吸收还不够。多做题多学习。
以后一段时间的规划:cf一场都不错过。及时补题写题解。整理板子。刷洛谷上的DP。刷kuangbin数论。
加油。