USACO 2025 - All Pairs Similarity

Xem PDF



Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 2400 (p) Thời gian: 4.0s Bộ nhớ: 512M Input: bàn phím Output: màn hình

Lưu ý: Giới hạn bộ nhớ của bài này là 512 MB, gấp đôi mức mặc định.

Mỗi cô trong số \(N\) cô bò của Farmer John (\(1\leq N\leq 5\cdot 10^5\)) được gán một xâu bit độ dài \(K\) không chứa toàn bit \(0\) (\(1\leq K\leq 20\)). Các cô bò khác nhau có thể được gán cùng một xâu bit.

Độ tương đồng Jaccard của hai xâu bit được định nghĩa là số bit \(1\) trong phép giao theo bit của chúng chia cho số bit \(1\) trong phép hợp theo bit của chúng. Ví dụ, độ tương đồng Jaccard của hai xâu bit \(\texttt{11001}\)\(\texttt{11010}\)\(2/4\).

Với mỗi cô bò, hãy in tổng độ tương đồng Jaccard giữa xâu bit của cô ấy với xâu bit của từng cô trong số \(N\) cô bò, kể cả chính cô ấy, theo modulo \(10^9+7\). Cụ thể, nếu tổng bằng số hữu tỉ \(a/b\), trong đó \(a\)\(b\) là các số nguyên không có ước chung, hãy in số nguyên duy nhất \(x\) thuộc \([0,10^9+7)\) sao cho \(bx-a\) chia hết cho \(10^9+7\).

Dữ liệu vào

Dòng đầu chứa \(N\)\(K\).

\(N\) dòng tiếp theo, mỗi dòng chứa một số nguyên \(i\in(0,2^K)\), biểu diễn một cô bò được gắn với dạng biểu diễn nhị phân độ dài \(K\) của \(i\).

Dữ liệu ra

Với mỗi cô bò, in tổng theo modulo \(10^9+7\) trên một dòng riêng.

Phân nhóm

  • Các test 2–15: Có hai bộ test cho mỗi giá trị \(K\in\{10,15,16,17,18,19,20\}\).

Ví dụ

Ví dụ 1

Input
4 2
1
1
2
3
Output
500000006
500000006
500000005
500000006
Giải thích

Các cô bò được gắn với những xâu bit sau: \([\texttt{01},\texttt{01},\texttt{10},\texttt{11}]\).

Với cô bò thứ nhất, tổng là \(\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}\).

Xâu bit của cô bò thứ hai giống cô bò thứ nhất nên tổng của cô ấy cũng giống như trên.

Với cô bò thứ ba, tổng là \(\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}\).

Nguồn

Đề bài gốc: USACO 2024 December Contest, Platinum — All Pairs Similarity

Tác giả: Benjamin Qi.

Bình luận

Mới nhất
Tải bình luận...

Không có bình luận nào.

Kỳ thi: