考场:(100 + 0 + 30 = 130)
T1:
看时限(10s),便(O(nm))暴力,先排序,询问(O(n))扫一遍,修改(O(1))换一下即可。
仔细看题,看到矩阵相对顶点便知道有坑。
还有C++用读优的要小心字符读入。
T2:
是一道概率题,想到(DP),但设状态错误导致无法转移。。。
正解矩乘优化(DP),设(f[i][j][k])表示闯到第(i)关,剩(j)条命,(k)连胜的概率。
转移到胜和负即可。
T3:
看完题目后感觉要分类讨论,思考(1h)后果断暴力(O(n^3))。
但是判断了一下(n<=500)才跑暴力,得了(30)分。(™(10^9)过(4s)?)
其实可以(O(n^2))暴力的。
这次T1细节注意到了,所以没有失分。
而对于T3,没有更进一步去思考,其实(O(n^2))是可以想出来的。
而且对于(O(n^2))加了优化(if (a[j].x - a[i].x >= ans2) break;)(正确性显然)便可以成功(gets90分)。
而后再加一个神奇的剪枝(正确性玄学)就过了?!
下次继续努力!
现在:(100 + 100 + 100 = 300)