牛客挑战赛46 题解&总结

除了B题外简单的牛客挑战赛。

然而卡在了B题导致整场比赛暴毙。


A

牛客挑战赛之前好像没有这么长的A题。

因为题目一开始数据出锅,一直检查自己哪里有问题,挂了两次,直到消息传来说数据范围开大了……于是30min才搞定,搞掉我心态。

真实切题时间是9min并且一次过。

经典问题,用两个栈分别维护数字和运算符即可。


B

搞了一个半小时搞不出来。

我建议将它和D题对调。

https://www.cnblogs.com/jz-597/p/14134796.html


C

一看就是DP。状态设对就差不多了。

(f_{n,i,k})表示统计大小为(n)的排列,搞出了(k)个“超级逆序对”,要求(n)必须放在第(n-i+1)(n)的位置上的方案数。

接着可以写出个(O(n^4))的做法,然后简单优化到(O(n^3))

因为出了些小差错调了好久导致最后10min才AC。

另外输出方案数的逆元是什么东西?正常人都会下意识地输出方案数除以总数。


D

AC完C题之后,想题+写题成功花8min搞完。

对于一个前缀,记下每个数出现次数模(k)。如果有两段前缀这个东西相同,那就有贡献。

直接哈希没了。


E

这题是原题呢……

原题的题解在这里:https://www.cnblogs.com/jz-597/p/13368951.html


F

这题稍微改一改也是原题呢……

对于一个点(i),可以视为一条路径((rt,i))。答案相当于将一段区间的链并起来,最后减去这些点的LCA的深度。

在这里:https://www.cnblogs.com/jz-597/p/11579371.html


被A题搞心态,B题想到自闭,于是失去了AK的可能性……

难受啊……