Java教程

多校NOIP26

本文主要是介绍多校NOIP26,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

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

这篇关于多校NOIP26的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!