P1077长街行street

时间限制 1000 ms内存限制 512 MiB通过率 —
显示算法标签可持久化线段树 · 二分

【题目背景】

船队带着沉没遗迹的抄本回到晨汐港。港口即将把这些记录送往内陆,长街上的住户也准备随队启程,Ehundategh 负责为他们安排同行队伍。

【题目描述】

长街的一侧共有 nn 户住户,依次编号为 1n1\sim n。第 ii 户持有一枚编号为正整数 aia_i 的通行牌。将 aia_i 写成二进制后,每个值为 11 的位置都对应一种这户住户拥有的通行印记

Ehundategh 共需要处理 qq 次安排。每次安排给出两个整数 l,rl,r,他需要从编号在 lrl\sim r 之间的住户中选择若干户,组成一支非空的同行队伍。同一户住户不能被重复选择,但通行牌编号相同的不同住户可以同时加入队伍。

长街的关卡会检查队伍是否拥有至少一种共同的通行印记。一支同行队伍能够顺利通过关卡,当且仅当队伍中所有通行牌编号按位与之后不为 00

请你求出每次安排中,能够顺利通过长街的同行队伍最多包含多少户住户。

形式化题意:给定正整数序列 a1,a2,,ana_1,a_2,\ldots,a_n,对于每次询问 [l,r][l,r],求

maxS{l,l+1,,r}{SandiSai0}.\max_{\varnothing\ne S\subseteq\{l,l+1,\ldots,r\}} \left\{|S|\mid \mathop{\operatorname{and}}_{i\in S}a_i\ne 0\right\}.

【输入格式】

从文件 street.in\textbf{\textit{street.in}} 中读入数据。

本题包含多组测试数据。

输入的第一行包含两个非负整数 c,Tc,T,分别表示测试点编号与测试数据的组数。c=0c=0 表示该测试点为样例。

对于每组测试数据:

第一行包含两个正整数 n,qn,q,表示住户数量与安排次数。

第二行包含 nn 个正整数 a1,a2,,ana_1,a_2,\ldots,a_n,表示每户住户的通行牌编号。

接下来 qq 行,每行包含两个正整数 l,rl,r,表示一次安排涉及的住户编号区间。

【输出格式】

输出到文件 street.out\textbf{\textit{street.out}} 中。

对于每组测试数据输出 qq 行,每行一个整数,依次表示每次安排中同行队伍人数的最大值。

【样例 1 输入】

0 25 43 5 6 10 121 52 43 34 56 31 2 4 8 7 31 62 55 6

【样例 1 输出】

3212322

【说明/提示】

【样例 1 解释】

在第一组测试数据的第一次安排中,可以选择第 1,3,51,3,5 户,三个整数按位与的结果为 3&6&12=03\mathbin{\&}6\mathbin{\&}12=0,因此这并不是一种合法选择。选择第 2,3,52,3,5 户时,结果为 5&6&12=45\mathbin{\&}6\mathbin{\&}12=4,可以得到一支人数为 33同行队伍

【样例 2】

见选手目录下的 street/street2.in\textbf{\textit{street/street2.in}}street/street2.ans\textbf{\textit{street/street2.ans}}

该组样例符合测试点 131\sim 3 的数据范围。

【样例 3】

见选手目录下的 street/street3.in\textbf{\textit{street/street3.in}}street/street3.ans\textbf{\textit{street/street3.ans}}

该组样例符合测试点 474\sim 7 的数据范围。

【样例 4】

见选手目录下的 street/street4.in\textbf{\textit{street/street4.in}}street/street4.ans\textbf{\textit{street/street4.ans}}

该组样例符合测试点 8158\sim 15 的数据范围。

【样例 5】

见选手目录下的 street/street5.in\textbf{\textit{street/street5.in}}street/street5.ans\textbf{\textit{street/street5.ans}}

该组样例符合测试点 162016\sim 20 的数据范围。

【数据范围】

对于 100%100\% 的数据,保证 1T201\leq T\leq 201n,q2×1051\leq n,q\leq 2\times 10^51ai1091\leq a_i\leq 10^91lrn1\leq l\leq r\leq n。对于同一个测试点,保证 n2×105\sum n\leq 2\times 10^5q2×105\sum q\leq 2\times 10^5

测试点编号nnqqaia_i
131\sim 318\leq 1820\leq 20109\leq 10^9
474\sim 72×105\leq 2\times 10^5=1=1109\leq 10^9
8158\sim 152×103\leq 2\times 10^32×105\leq 2\times 10^5109\leq 10^9
162016\sim 202×105\leq 2\times 10^52×105\leq 2\times 10^5109\leq 10^9

【题解】

已公开 1 篇题解,官方题解会优先显示。

查看题解