考场:\(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\)