luogu#P7853. 「EZEC-9」进位

「EZEC-9」进位

题目背景

规定 popcount(x)\text{popcount}(x) 表示 xx 在二进制表示下所含 11 的个数。

题目描述

您有一个二进制数 BB(以一个长为 nn0101 字符串形式给出)和长为 mm 的序列 aa

同时,您还需要对 BB 进行 mm 次操作。

其中,第 ii 个操作为 BB+2aiB \gets B + 2^{a_i},其价值 viv_iBB 在操作前后变化的位置数量,即 $v_i = \operatorname{popcount}(B \mathbin{\mathrm{xor}} (B + 2^{a_i}))$。

您需要解决两个问题:

  • 您可以任意安排操作顺序,问在执行所有操作后,i=1mvi\displaystyle \sum_{i=1}^mv_i 最大为多少?

  • 您可以任意安排操作顺序,问在执行所有操作后,maxi=1mvi\displaystyle \max_{i=1}^mv_i 最大为多少?

输入格式

第一行两个整数 n,mn,m

第二行一个长为 nn0101 字符串,表示二进制数 BB从低位到高位依次给出

第三行 mm 个整数 a1,a2,,ama_1,a_2,\dots,a_m

输出格式

第一行一个整数,表示第一问的答案。

第二行一个整数,表示第二问的答案。

本题使用 Special Judge,若您的第一问答案正确,可以获得该测试点 30%30\% 的分数,若您的第二问答案正确,可以获得该测试点另外 70%70\% 的分数。

若您只回答了两问中的一问,请在另一个位置输出一个非负整数。

5 6
10110
1 0 2 2 2 2

14
6

10 10
0101010110
0 1 2 3 4 5 5 4 3 2

21
9

10 3
1111101111
5 5 0

13
11

提示

【样例解释 #1】

对于第一问,依次执行第 1,2,6,5,4,31,2,6,5,4,3 个操作可得到 i=1mvi=14\displaystyle \sum\limits_{i=1}^mv_i=14

对于第二问,依次执行第 6,5,4,3,1,26,5,4,3,1,2 个操作可得到 maxi=1mvi=6\displaystyle \max\limits_{i=1}^mv_i=6

详细过程

【数据范围】

本题采用捆绑测试。

  • Subtask 1(20 points):n,m10n,m\leq 10
  • Subtask 2(30 points):n,m1000n,m\leq 1000
  • Subtask 3(20 points):BB 中全为 00,且 a1=0a_1=0i>1,ai1aiai1+1\forall i>1, a_{i-1}\leq a_i\leq a_{i-1}+1
  • Subtask 4(20 points):n,m105n,m\leq 10^5
  • Subtask 5(10 points):无特殊限制。

对于 100%100\% 的数据,1n,m1061\leq n,m\leq 10^60ai<n0\leq a_i< n