3.27模拟赛
作者:互联网
(挂惨了 我晚上一定好好睡觉。
T1 求冒泡排列在第几轮结束。\(n\leq 3e7\)
可以发现每次自己左边最大的数字是向右移动的 所以答案为max{自己左边有多少个数比自己大}
想要O(n)求出的话还要再考虑一下 如何求出max 由于是max 我们考虑自己右边最多有多少比自己小的max等价于原答案。
所以我们可以发现 利用较小的数字来统计答案会比用较大的数字统计答案更优 换个说法 \(a_i<a_j\) \(a_i\)和\(a_j\)如果进行换位了 那么我们只统计\(a_i\)的对答案的
贡献至少不会比\(a_j\)要小。一个很难得到最很好好证明的答案:max{i-\(a_i\)}即为答案。
考虑证明:一个数字前面包括本身最多有\(a_i\)个数对答案没有贡献。考虑如果不够这\(a_i\)个数 那么一定有比自己还要小的数字在自己后面 那么这样统计下去至少能够找到答案。
T2:
标签:数字,max,个数,自己,统计,3.27,模拟,答案 来源: https://www.cnblogs.com/chdy/p/12582022.html