1115总结

考试

T1

简单题写蠢做法。

我用了 \(set\) 来维护同一行同一列的信息然后还要查询什么的,实际上 vector 就可以了,记录一下该点的行下标和列下标。

T2

简单题写挂。

首先转对照局面。

想到可以先二分个左时间出来,然后仿超级钢琴。

实际上可以二分个左时间和右时间暴力排序,码量更小了。

写挂是排序的各种问题。

排序,尤其是对编号排序,一定要搞清楚排的到底是什么的序。

T3

做不来的趣味题。

考场上想到可以 \(O(n^3)\) 的动态规划,方法是设 \(dp[i][j][k]\) 表示考虑到 \(i\),漏了 \(j\)\(B\),当前有 \(k\)\(A\),转移可以做到 \(O(1)\)

左看右看都觉得有一维是多余的,但是就是去不掉。

考虑最终答案的分界线,然后动态规划,就可以去掉一维,但是动态规划变成反向了。

容易发现转移的重复性很高,相当于是一个行向量乘上若干矩阵再乘一个列向量,可以反过来写。

考场上没想到反过来写,是因为反过来之后动态规划就没有明晰的组合意义了,所以陷入了正向的窠臼,不容易思考。

参考某道题(T2)

T4