C/C++教程

快乐的一天从AC开始 | 20210808 | CF1554B

本文主要是介绍快乐的一天从AC开始 | 20210808 | CF1554B,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

题目链接

每日吐槽

心路历程

我怎么连Div2. B都做不出来了呀

思路

记\(f(i, j) = i * j - k (a_i | a_j), i < j\)。

对于所有可能的\(a_i\)取值,\(f(n - 1, n) \in [n^2 - n - 2kn, n^2 - n]\),\(f(i, n) \in [ni - 2kn, ni]\),则\(f(i, n) > f(n - 1, n) \Leftrightarrow i > n - 2k - 1\)。

然后就可以枚举右端点,对于每个右端点,可能的左端点最多只有\(O(k)\)个。

然后直接暴力枚举,时间复杂度\(O(kn)\)。

这篇关于快乐的一天从AC开始 | 20210808 | CF1554B的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!