题库练习 「USACO 2024.12 Platinum」All Pairs Similarity
← 上一题 下一题 →

A6141 | 「USACO 2024.12 Platinum」All Pairs Similarity

时间限制2s
内存限制512MB
通过 / 提交0/0

题目描述

**题目译自 [USACO 2024 December Contest, Platinum](http://usaco.org/index.php?page=dec24results) Problem 1. [All Pairs Similarity](https://usaco.org/index.php?page=viewproblem2&cpid=1452)**

Farmer John 的 $N$($1\le N\le 5\cdot 10^5$)头奶牛都被分配了一个长度为 $K$ 的非全零位串($1\le K\le 20$)。不同的奶牛可能被分配到相同的位串。

两个位串的 Jaccard 相似度定义为它们的按位与的结果中 $\texttt{1}$ 的数量除以它们的按位或的结果中 $\texttt{1}$ 的数量。例如,位串 $\texttt{11001}$ 和 $\texttt{11010}$ 的 Jaccard 相似度为 $2/4$。

对于每头奶牛,输出她的位串与每头奶牛(包括她自己)的位串的 Jaccard 相似度之和,对 $10^9+7$ 取模。具体地说,如果总和等于一个有理数 $a/b$,其中 $a$ 和 $b$ 是互质的整数,则输出范围 $[0,10^9+7)$ 内的唯一整数 $x$,使得 $bx-a$ 被 $10^9+7$ 整除。

输入格式

输入的第一行包含 $N$ 和 $K$。

以下 $N$ 行每行包含一个整数 $i\in (0,2^K)$,表示一头奶牛分配到了 $i$ 的 $K$ 位二进制表示。

输出格式

对于每头奶牛输出一行,包含所求的总和,对 $10^9+7$ 取模。

输入输出样例

输入 #1
4 2
1
1
2
3
输出 #1
500000006
500000006
500000005
500000006
C++ 编辑器
输入
输出