CF1017D The Wu
题目描述
Childan 正在编造一个传奇故事,并试图将他伪造的——具有强烈“Wu”感的项链——卖给 Kasoura 夫妇。但 Kasoura 先生对 Childan 的故事提出了质疑,因此他打算就 Childan 所谓的“私人珍宝”项链提出几个问题。
这个“私人珍宝”是一个包含 $m$ 个“01 串”的多重集 $S$。
“01 串”是指长度为 $n$,仅由字符“0”和“1”组成的字符串。例如,当 $n=4$ 时,字符串“0110”、“0000”和“1110”都是“01 串”,但“00110”(有 $5$ 个字符,不是 $4$ 个)和“zero”(包含不允许的字符)都不是。
注意,多重集 $S$ 可以包含相同的元素。
Kasoura 先生会多次给出一个“01 串” $t$,并询问 Childan:在多重集 $S$ 中,有多少个字符串 $s$ 使得二者的“Wu”值不超过 $k$。
Kasoura 夫妇认为,如果 $s_i = t_i$($1\leq i\leq n$),那么该字符对的“Wu”值为 $w_i$,否则为 $0$。两个“01 串”的“Wu”值为每一位字符对的“Wu”值之和。注意,每个“01 串”的长度均为 $n$。
例如,若 $w=[4, 5, 3, 6]$,“1001”与“1100”的“Wu”值为 $7$,因为这两个字符串只有第 1 位和第 3 位字符相同,所以 $w_1+w_3=4+3=7$。
你需要帮助 Childan 回答 Kasoura 先生的所有询问。即,对于每个询问,找出多重集 $S$ 中有多少个字符串与给定的 $t$ 的“Wu”值不超过 $k$。
输入格式
第一行包含三个整数 $n$、$m$ 和 $q$($1\leq n\leq 12$,$1\leq m, q\leq 5 \times 10^5$)——“01 串”的长度、多重集 $S$ 的大小以及询问的数量。
第二行包含 $n$ 个整数 $w_1, w_2, \ldots, w_n$($0 \le w_i \le 100$)——第 $i$ 位字符的权值。
接下来的 $m$ 行,每行一个长度为 $n$ 的“01 串” $s$,表示多重集 $S$ 中的一个字符串。
接下来的 $q$ 行,每行包含一个长度为 $n$ 的“01 串” $t$ 和一个整数 $k$($0\leq k\leq 100$),表示一个询问。
输出格式
对于每个询问,输出该询问的答案。
说明/提示
在第一个样例中,可以得到:
("01", "00") 的 "Wu" 值为 $40$。
("10", "00") 的 "Wu" 值为 $20$。
("11", "00") 的 "Wu" 值为 $0$。
("01", "11") 的 "Wu" 值为 $20$。
("10", "11") 的 "Wu" 值为 $40$。
("11", "11") 的 "Wu" 值为 $60$。
在第一个询问中,("11", "00") 和 ("10", "00") 满足条件,因为它们的 "Wu" 值不超过 $20$。
在第二个询问中,所有字符串都满足条件。
在第三个询问中,("01", "11") 和 ("01", "11") 满足条件。注意,由于多重集中有两个“01”,答案为 $2$,而不是 $1$。
在第四个询问中,随着 $k$ 的增大,("10", "11") 也满足条件。
在第五个询问中,随着 $k$ 的增大,("11", "11") 也满足条件。
由 ChatGPT 4.1 翻译