T1:
考虑不难发现随着一条队列元素选择数量的增加,另一条条数列选择数量单调不增
这是显然的三分模型,于是我的考场做法为三分+ 二分,即三分第一个人的选择数量再
二分第二个人的选择数量,然而有两个问题,首先若根据求根公式暴力开根计算精度极
易炸锅,其次,简单分析发现,问题并不是严格单峰函数,存在相同取值,因此我这种
整数三分方法无法解决,然而付哥哥考场上利用将整数三分转换为实数三分解决了这一
问题因为整数域上相同取值在实数域上一般不同,只有a,b,c,d相同时才会相同,特
判即可
考虑题解做法为二分mid表示要取走小于等于mid的元素,考虑其正确性,不妨从最
优状态进行考虑,设第一队取到x,下一个元素为y,第二队取到z,下一个元素为w,首
先因为b,d不为0,那么有x < y && z < w,考虑当前这种情况的条件为x比w优,z比y优
于是有x <= w && z <= y,我们发现起一定是被一条线划分开的,于是二分这条线即可,
但是会发现,第二组不等式存在等号,特判是否能再取一个即可
Update:考场整数三分打了半天,最后根据大样例调整还写假了(关键是还过拍了。。)
这里我了解的整数三分两种写法:
1:mid = (l + r >> 1) ld = mid - 1, rd = mid + 1条件为l + 1 < r
2:len = (r - l + 1 / 3) ld = l + len, rd = r - len 条件为l + 2 < r