QOJ.ac

QOJ

Time Limit: 2 s Memory Limit: 512 MB Total points: 100

#10958. Similarité de toutes les paires

Statistics

Chacune des $N$ ($1\le N\le 5\cdot 10^5$) vaches de Farmer John se voit attribuer une chaîne de bits de longueur $K$ qui n'est pas entièrement composée de zéros ($1\le K\le 20$). Des vaches différentes peuvent se voir attribuer la même chaîne de bits.

La similarité de Jaccard de deux chaînes de bits est définie comme le nombre de bits à un dans leur intersection bit à bit divisé par le nombre de bits à un dans leur union bit à bit. Par exemple, la similarité de Jaccard des chaînes de bits $\texttt{11001}$ et $\texttt{11010}$ serait $2/4$.

Pour chaque vache, affichez la somme des similarités de Jaccard entre sa chaîne de bits et les chaînes de bits de chacune des $N$ vaches, y compris la sienne, modulo $10^9+7$. Plus précisément, si la somme est égale à un nombre rationnel $a/b$, où $a$ et $b$ sont des entiers sans facteur commun, affichez l'unique entier $x$ dans l'intervalle $[0,10^9+7)$ tel que $bx-a$ soit divisible par $10^9+7$.

Entrée

La première ligne contient $N$ et $K$. Chacune des $N$ lignes suivantes contient un entier $i\in (0,2^K)$, représentant une vache associée à la représentation binaire de $i$ sur $K$ bits.

Sortie

Affichez la somme modulo $10^9+7$ pour chaque vache sur une ligne distincte.

Exemples

Entrée 1

4 2
1
1
2
3

Sortie 1

500000006
500000006
500000005
500000006

Remarque

Les vaches sont associées aux chaînes de bits suivantes : $[\texttt{01}, \texttt{01}, \texttt{10}, \texttt{11}]$. Pour la première vache, la somme est $\text{sim}(1,1)+\text{sim}(1,1)+\text{sim}(1,2)+\text{sim}(1,3)=1+1+0+1/2\equiv 500000006\pmod{10^9+7}$. La chaîne de bits de la deuxième vache est la même que celle de la première, donc sa somme est la même que ci-dessus. Pour la troisième vache, la somme est $\text{sim}(2,1)+\text{sim}(2,1)+\text{sim}(2,2)+\text{sim}(2,3)=0+0+1+1/2\equiv 500000005\pmod{10^9+7}$.

Pour la première vache, la somme est $\text{sim}(1,1)+\text{sim}(1,1)+\text{sim}(1,2)+\text{sim}(1,3)=1+1+0+1/2\equiv 500000006\pmod{10^9+7}$. Pour la troisième vache, la somme est $\text{sim}(2,1)+\text{sim}(2,1)+\text{sim}(2,2)+\text{sim}(2,3)=0+0+1+1/2\equiv 500000005\pmod{10^9+7}$.

La chaîne de bits de la deuxième vache est la même que celle de la première, donc sa somme est la même que ci-dessus. Pour la troisième vache, la somme est $\text{sim}(2,1)+\text{sim}(2,1)+\text{sim}(2,2)+\text{sim}(2,3)=0+0+1+1/2\equiv 500000005\pmod{10^9+7}$.

Pour la troisième vache, la somme est $\text{sim}(2,1)+\text{sim}(2,1)+\text{sim}(2,2)+\text{sim}(2,3)=0+0+1+1/2\equiv 500000005\pmod{10^9+7}$.

Contraintes

Entrées 2-15 : il y aura deux cas de test pour chacune des valeurs $K\in \{10,15,16,17,18,19,20\}$.

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.