2019.08.15【NOIP提高组】模拟 A 组 总结

考场:\(70 + 0 + 0 = 70\)


T1:

考场就刚\(T1\)了。。。
首先打了个暴力:\(dfs\)枚举选哪些数,然后\(K^2DP\)求出答案。
\(f[i][j]\)表示前\(i\)个人有\(j\)个选好的方案数。答案即为\(f[K][K/2]\)
从题解发现,选的人是一段前缀和一段后缀。
茹氏证明:
我们可以固定\(K-1\)个人以及他们选什么。
我们设\(s1\)表示有\(K/2-1\)人选好,\(K/2\)人选坏的概率。
\(s2\)表示\(K/2\)人选好,\(K/2-1\)人选坏的概率。
那么对于答案,即为\(s1*p+s2*(1-p)\)
\(s1>s2\),那么肯定的我们要使p尽可能大,反之亦然。
不断如此,结果选的人一定为一段前缀和一段后缀。
用DP求解即可。


T2:

考场最后二十分钟才开始想。
想到了用\(ST\)表维护\(gcd\),然后枚举\(a[k]\)二分左右端点。
但由于某些场外因素导致最后没时间调出来。
\(GG\)
改题题解众多,乃好题一道。
有人\(O(n)\)做法,有人\(O(nlog^2n)\)。。。


T3:

第一眼感觉是神仙题。。。
正解是\(O(nm^2)DP\)优化成\(O(m^3)\)


总结:

要想清楚做题顺序,以及花费时间是否合理。
对于某些证明,还是严谨点好。
不要因为一道题而挂了正常比赛。。。
对于程序,要适当加些常数优化,以及一些可行性剪枝。

现在:\(100 + 100 + 0 = 200\)

posted @ 2019-08-15 16:20  jz929  阅读(114)  评论(0编辑  收藏  举报