Loading

HNOI2020游记

\(CSPday2t1MLE\)了,于是参加不了省选了,最后在校内考。

\(Day1\)

看完\(3\)道题,感觉\(t2\)最可做,于是先做\(t2\)。把它拆成了单项式,推了一下式子,发现变成了\(CF932ETeam Work\),然后把它拆成了斯特林数,过了小样例,结果大样例\(WA\)。然后检查了一下发现式子有个地方漏了一个\((x-1)^i\),于是过了大样例,就看\(t1\)了。

\(t1\)发现是求\(min(A(i),B(i))\)的值,这两个函数都是单调的,于是想起\(Atcoder\)\(Complexy\)那题,可以直接二分交点,打了一个树状数组\(+\)二分,发现大样例要跑半天,把它拆成了前缀和的形式,然后想起了树状数组\(+\)倍增的套路,把它改成倍增就过了大样例。

\(t3\)想了一会儿发现用线性基维护后可以拆成若干个环,然后一个点假如用了变法可以贪心,\(A\),\(B\)组不能同时选,然后就是每个点选一个\(A,B\)组然后在图上删点使图中没有环,最小化权值,但是我不会做。

然后时间就快到了,拍了一下\(t2\),发现没问题,于是没有写\(t3\)暴力。

期望得分:\(100+100+0\)

\(Day2\)

看完\(3\)道题,发现有\(2\)道图论题(其实\(t1\)应该也算图论题)

先看了一下\(t1\),发现\(m<=23\),所以这是个状压题,然而\(n<=100000\),不怎么好处理。这时突然想起清华集训\(2014\)主旋律,可以将它转化成图论问题,然后可以做到\(O(m2^m)\),然而大样例跑了\(3-4s\),开始怀疑\(t1\)的正解是\(O(2^m)\)的,利用了一下原图是链的性质,然而并没有想出更好的做法,于是去看\(t2\)了。

看了一下\(t2\)的式子,发现可以转化成子树\(+1\),求子树异或和,然而这个不太好做,考虑了一下拆位,然后就可以转化为距\(x\)长度\(mod k=d\)且大于等于\(d\)的祖先打标记,于是可以得到树上差分的形式,这个可以标记上传,写了一下代码,一测大样例,\(WA!\)。于是调了半天,调到考试结束前\(5min\)还没调出来,最后把暴力交上去了,其实是标记上传时一个\(j\)达成了\(i\),这个其实重构代码更容易发现错误。但倍增跳\(k\)级祖先\(O(nlog_{2}n)\)\(T\),换成离线求\(k\)级祖先就\(O(nlogn)\)了。

\(t3\)看了一下,是个矩阵树定理的题,直接矩阵树定理有\(70\),但我有点忘了怎么求矩阵行列式了。

期望得分:\(80+100+0->80+10-20+0\)

然而一交\(t1\)\(MLE\)\(60\),这个评测机上岂不是就没分了,考场上特意算了\(22\times2^{22}\),只有\(10^7\)级别的样子,不大,然而由于正反图,乘个\(2\)\(MLE\)了,把\(int\)换成\(short\)其实就不会\(MLE\)了,看来还是要手算空间,而且空间算错了一点可能就\(MLE\)了。

总结

这次\(Day1\)应该还好,\(Day2\)出了很多问题,\(t2\)变量打错完全是不该犯的,\(t1\)\(MLE\)的错误考后花点时间手算空间是有必要的,但一直在调\(t2\),没有仔细检查空间,空间时间问题还是应当在考试结束前\(15min\)就检查好。

posted @ 2022-12-14 22:00  zhouhuanyi  阅读(78)  评论(0)    收藏  举报