贪心,首先,如果这个数组存在比L大的数,是必然不会有解的,因为或运算只会让结果越来越大。
所以从前往后枚举,找到或运算结果最大的分界点,最后答案就是分界点的个数+1。
给定一个长度为 n 的正整数序列。定义一个连续片段的融合值为该片段中所有整数按位或运算的结果。现在需要将整个序列划分成尽可能少的连续片段,使得每个片段的融合值均不超过给定的上限 L。
如果序列中存在某个元素自身的融合值就大于 L,则无法完成划分,此时输出 −1。
约束条件:序列长度 n 不超过 2×105,上限 L 以及序列中的每个整数均为不超过 109 的正整数。
By signing up a CodeFun2000 universal account, you can submit code and join discussions in all online judging services provided by us.