设 \(dp_{i,j}\) 前 \(i+j\) 个人站队,第一排站 \(i\) 个人的方案数。
每次对相同身高的一段人进行转移。暴力复杂度是正确的。
时间复杂度 \(O(n^2)\)。
考虑二分答案,设当前 check 的值为 \(t\)。
那么 \(i\) 和 \(j\) 在这段时间内发生碰撞等价于 \(p_i\le p_j,p_i+v_i\cdot t\le p_j+v_j\cdot t\) 且 \(i,j\) 类型不同。
可以按类型排序,以 \(p\) 为下标维护一棵线段树。
时间复杂度 \(O(n\log SIZE\log n)\)。
设先手取得的总和为 \(A\),那么最后的价值为
\[|A|-|S-A|= \begin{cases} S\space\space\space\space\space\space\space\space\space\space\space\space(A\geq S)\\ 2A-S\space\space(0\leq A<S)\\ -S\space\space\space\space\space\space\space\space\space(A<0) \end{cases} \]容易发现这个函数单调不减,因此每个人每次都会选当前最大的。
时间复杂度 \(O(n\log n)\)。
暴力。
时间复杂度 \(O(\)能过\()\)。
标签:1.17,le,log,space,题解,复杂度,模拟 From: https://www.cnblogs.com/Tarantula/p/17057879.html