QOJ.ac

QOJ

Süre Sınırı: 2 s Bellek Sınırı: 512 MB Toplam puan: 100

#10958. Ähnlichkeit aller Paare

İstatistikler

Jeder der $N$ ($1\le N\le 5\cdot 10^5$) Kühe von Farmer John wird eine Bitfolge der Länge $K$ zugewiesen, die nicht ausschließlich aus Nullen besteht ($1\le K\le 20$). Verschiedenen Kühen kann dieselbe Bitfolge zugewiesen werden.

Die Jaccard-Ähnlichkeit zweier Bitfolgen ist definiert als die Anzahl der gesetzten Bits in ihrem bitweisen Schnitt, geteilt durch die Anzahl der gesetzten Bits in ihrer bitweisen Vereinigung. Beispielsweise beträgt die Jaccard-Ähnlichkeit der Bitfolgen $\texttt{11001}$ und $\texttt{11010}$ genau $2/4$.

Gib für jede Kuh die Summe der Jaccard-Ähnlichkeiten ihrer Bitfolge mit den Bitfolgen aller $N$ Kühe einschließlich ihrer eigenen aus, modulo $10^9+7$. Genauer gesagt: Ist die Summe eine rationale Zahl $a/b$, wobei $a$ und $b$ ganze Zahlen ohne gemeinsame Faktoren sind, gib die eindeutige ganze Zahl $x$ im Bereich $[0,10^9+7)$ aus, für die $bx-a$ durch $10^9+7$ teilbar ist.

Eingabe

Die erste Zeile enthält $N$ und $K$. Jede der nächsten $N$ Zeilen enthält eine ganze Zahl $i\in (0,2^K)$, die eine Kuh mit der binären Darstellung von $i$ der Länge $K$ repräsentiert.

Ausgabe

Gib die Summe modulo $10^9+7$ für jede Kuh in einer eigenen Zeile aus.

Beispiele

Eingabe 1

4 2
1
1
2
3

Ausgabe 1

500000006
500000006
500000005
500000006

Hinweis

Den Kühen sind die folgenden Bitfolgen zugeordnet: $[\texttt{01}, \texttt{01}, \texttt{10}, \texttt{11}]$. Für die erste Kuh ist die Summe $\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}$. Die Bitfolge der zweiten Kuh ist dieselbe wie die der ersten, daher ist ihre Summe dieselbe wie oben. Für die dritte Kuh ist die Summe $\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}$.

Für die erste Kuh ist die Summe $\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}$. Für die dritte Kuh ist die Summe $\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}$.

Die Bitfolge der zweiten Kuh ist dieselbe wie die der ersten, daher ist ihre Summe dieselbe wie oben. Für die dritte Kuh ist die Summe $\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}$.

Für die dritte Kuh ist die Summe $\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}$.

Beschränkungen

Eingaben 2–15: Für jedes $K\in \{10,15,16,17,18,19,20\}$ gibt es zwei Testfälle.

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.