USACO 2025 - Sequence Construction

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: 2300 (p) Thời gian: 4.0s Bộ nhớ: 512M Input: bàn phím Output: màn hình

Gần đây, những chú bò ở trang trại của Farmer John mê mẩn bộ phim Apothecowry Dairies. Bộ phim xoay quanh CowCow, một thám tử bò thông minh chuyên giải quyết đủ loại vấn đề. Bessie tìm thấy một bài toán mới trong phim, nhưng phải đến tập tiếp theo sau một tuần lời giải mới được tiết lộ! Hãy giải bài toán giúp cô.

Bạn được cho hai số nguyên \(M\)\(K\) (\(1 \leq M \leq 10^9\), \(1 \leq K \leq 31\)). Hãy chọn một số nguyên dương \(N\) và xây dựng một dãy \(a\) gồm \(N\) số nguyên không âm sao cho các điều kiện sau được thỏa mãn:

  • \(1 \le N \le 100\).
  • \(a_1+a_2+\dots+a_N=M\).
  • \(\operatorname{popcount}(a_1)\oplus\operatorname{popcount}(a_2)\oplus\dots\oplus\operatorname{popcount}(a_N)=K\).

Nếu không tồn tại dãy như vậy, in ra \(-1\).

\(\dagger\ \operatorname{popcount}(x)\) là số bit bằng \(1\) trong biểu diễn nhị phân của số nguyên \(x\). Chẳng hạn, popcount của \(11\)\(3\) và popcount của \(16\)\(1\).

\(\dagger\ \oplus\) là phép XOR theo bit.

Dữ liệu vào gồm \(T\) (\(1 \le T \le 5\cdot 10^3\)) bộ dữ liệu độc lập.

Dữ liệu vào

Dòng đầu tiên chứa \(T\).

Dòng đầu tiên và duy nhất của mỗi bộ dữ liệu chứa \(M\)\(K\).

Đảm bảo mọi bộ dữ liệu đều khác nhau.

Dữ liệu ra

In lời giải cho \(T\) bộ dữ liệu như sau:

Nếu không tồn tại đáp án, dòng duy nhất cho bộ dữ liệu đó phải là \(-1\).

Ngược lại, dòng đầu tiên cho bộ dữ liệu đó chứa một số nguyên \(N\), là độ dài của dãy (\(1 \le N \le 100\)).

Dòng thứ hai chứa \(N\) số nguyên cách nhau bởi dấu cách thỏa mãn các điều kiện (\(0 \le a_i \le M\)).

Ví dụ

Ví dụ 1

Input
3
2 1
33 5
10 5
Output
2
2 0
3
3 23 7
-1
Giải thích

Trong bộ dữ liệu đầu tiên, các phần tử của mảng \(a=[2,0]\) có tổng bằng \(2\). XOR của các popcount là \(1\oplus 0=1\). Do đó mọi điều kiện đều được thỏa mãn.

Trong bộ dữ liệu thứ hai, các phần tử của mảng \(a=[3,23,7]\) có tổng bằng \(33\). XOR của các popcount là \(2\oplus 4\oplus 3=5\). Do đó mọi điều kiện đều được thỏa mãn.

Các mảng hợp lệ khác là \(a=[4,2,15,5,7]\)\(a=[1,4,0,27,1]\).

Có thể chứng minh rằng không có mảng hợp lệ nào cho bộ dữ liệu thứ ba.

Phân nhóm

  • Dữ liệu 2: \(M\le 8, K\le 8\).
  • Dữ liệu 3–5: \(M>2^K\).
  • Dữ liệu 6–18: Không có ràng buộc bổ sung.

Đề bài: Aakash Gokhale.

Nguồn

USACO 2025 US Open Contest, Silver — Sequence Construction: https://usaco.org/index.php?page=viewproblem2&cpid=1518

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: