QOJ.ac

QOJ

حد الوقت: 1 s حد الذاكرة: 1024 MB مجموع النقاط: 100 قابلة للهجوم ✓

#18518. The Real Folk Blues

الإحصائيات

Bạn đang xâm nhập vào thiết bị đầu cuối dữ liệu của tổ chức Red Dragon Syndicate. Kho lưu trữ của thiết bị, ký hiệu là $S$, ban đầu chứa $n$ tần số tín hiệu đã được mã hóa, mỗi tần số được biểu diễn dưới dạng một xâu nhị phân độ dài $k$. Các tần số ban đầu này được đánh chỉ số từ $1$ đến $n$ theo đúng thứ tự chúng được trích xuất từ bộ nhớ của thiết bị. Để phá vỡ lõi, bạn phải tổng hợp các tần số mới và đưa chúng vào kho lưu trữ. Mỗi thao tác tổng hợp sẽ thêm chính xác một xâu nhị phân mới vào $S$ và tự động gán cho nó chỉ số nguyên dương tiếp theo.

Bạn được trang bị hai thao tác:

  • Đảo pha: Chọn một tần số $s$ đã tồn tại và thêm phần bù bit chính xác của nó (Cho $s$ là một xâu nhị phân độ dài $k$, với $s = s_1 s_2 \dots s_k$ trong đó mỗi bit $s_i \in \{0, 1\}$. Phần bù bit của $s$, thường được ký hiệu toán học là $\neg s$, được định nghĩa là một xâu nhị phân mới độ dài $k$ với giá trị của bit thứ $i$ là $1 - s_i$.);
  • Tam giác hóa tín hiệu: Chọn ba tần số đã tồn tại $u$, $v$ và $w$ (không nhất thiết phải phân biệt) và thêm phần lớn bit của chúng, ký hiệu là $\operatorname{maj}(u,v,w)$. Với mỗi vị trí bit $i$, thao tác được tính như sau: $$\operatorname{maj}(u,v,w)_i = \operatorname{maj}(u_i,v_i,w_i).$$ Với các bit đơn lẻ $a$, $b$, $c$, $\operatorname{maj}(a,b,c)$ là $1$ nếu có ít nhất hai bit là $1$, và $0$ trong trường hợp còn lại.

Mục tiêu của bạn là xác định xem có thể tạo ra được một mã tiền thưởng mục tiêu $t$ độ dài $k$ hay không. Nếu có thể, bạn cần đưa ra một dãy thao tác (tối đa $10^5$) để xây dựng thành công mã đó.

Dữ liệu vào

Dòng đầu tiên của luồng dữ liệu từ thiết bị chứa hai số nguyên $n$ và $k$ ($1 \le n, k \le 200$), biểu diễn số lượng mã ban đầu và độ dài của mỗi mã.

Mỗi dòng trong số $n$ dòng tiếp theo chứa một xâu nhị phân (các ký tự 01) độ dài $k$, thể hiện một mã hiện có trong kho lưu trữ.

Dòng cuối cùng chứa một xâu nhị phân $t$ độ dài $k$, biểu diễn mã tiền thưởng mục tiêu bạn cần tạo ra.

Dữ liệu ra

Nếu không thể tạo ra mã mục tiêu $t$, in ra một dòng duy nhất chứa NO.

Ngược lại, in ra YES. Trên dòng tiếp theo, in ra một số nguyên $m$ ($0 \le m \le 10^5$), biểu diễn tổng số thao tác bạn sẽ sử dụng. Sau đó, in ra $m$ dòng mô tả các thao tác theo thứ tự:

  • 1 x: Chọn mã đã tồn tại ở chỉ số $x$ và thực hiện Đảo pha (thêm phần bù bit của $x$);
  • 2 x y z: Chọn các mã đã tồn tại ở chỉ số $x$, $y$ và $z$ và thực hiện Tam giác hóa tín hiệu (thêm $\operatorname{maj}$ của các xâu đã có với chỉ số $x$, $y$, $z$).

Mỗi chỉ số bạn sử dụng phải đã tồn tại trong kho lưu trữ tại thời điểm bạn sử dụng nó. Sau tất cả $m$ thao tác, ít nhất một mã trong kho lưu trữ phải khớp chính xác với mã mục tiêu $t$. Nếu mã mục tiêu $t$ đã có trong kho lưu trữ ban đầu, bạn chỉ cần xuất ra $m = 0$.

Nếu có nhiều cách tạo ra mã, bạn có thể in ra bất kỳ dãy thao tác hợp lệ nào.

Ví dụ

Dữ liệu vào 1

3 4
1000
0100
0010
1111

Dữ liệu ra 1

YES
4
1 1
1 2
1 3
2 4 5 6

Ghi chú

  • Ba thao tác đầu tiên thêm phần bù của các xâu ban đầu, tạo ra 0111, 10111101.
  • Thao tác cuối cùng lấy phần lớn bit của ba xâu này.
  • Tại mọi vị trí, có ít nhất hai trong số chúng có bit $1$, do đó xâu được thêm vào là 1111, chính là mã mục tiêu.

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.