QOJ.ac

QOJ

Puntuación total: 100 Solo salida

#18421. Mạch Ba

Estadísticas

Trong quá trình triển khai mạch điện cho một robot, bạn nhận thấy một số điểm bất thường. Có $N = 128$ chương trình, được đánh số từ $0$ đến $N-1$, mà robot có thể chạy. Thông thường, chỉ một chương trình (trong số $N$ chương trình) được chạy tại bất kỳ thời điểm nào. Tuy nhiên, vì một số lý do không xác định, đôi khi chính xác ba chương trình chạy cùng lúc. May mắn thay, với tư cách là một lập trình viên có kinh nghiệm, bạn biết cách xử lý tình huống này và quyết định triển khai một mạch điện để phát hiện những bất thường như vậy.

Trước tiên, bạn tạo $N$ đầu vào. Đầu vào thứ $i$ là $0$ nếu chương trình thứ $i$ không chạy, và $1$ nếu ngược lại. Sau đó, bạn thêm các cổng logic, được đánh số liên tiếp bắt đầu từ $N$. Mỗi cổng có thể nhận một số lượng đầu vào nhất định và tạo ra một đầu ra duy nhất, là $0$ hoặc $1$. Các đầu vào của cổng thứ $i$ có thể là đầu ra của bất kỳ cổng nào có chỉ số nhỏ hơn $i$, hoặc bất kỳ đầu vào nào trong số $N$ đầu vào ban đầu.

Có ba loại cổng:

  • NOT: nhận chính xác một đầu vào. Đầu ra là $1$ nếu đầu vào là $0$, và $0$ nếu ngược lại.
  • OR: nhận chính xác hai đầu vào. Đầu ra là $0$ nếu cả hai đầu vào đều là $0$, và $1$ nếu ngược lại.
  • AND: nhận chính xác hai đầu vào. Đầu ra là $1$ nếu cả hai đầu vào đều là $1$, và $0$ nếu ngược lại.

Đầu ra của cổng cuối cùng phải là $1$ nếu phát hiện bất thường—nghĩa là nếu chính xác ba trong số $N$ đầu vào đầu tiên là $1$—và $0$ nếu chính xác một trong số $N$ đầu vào đầu tiên là $1$.

Đảm bảo rằng số lượng giá trị $1$ trong số $N$ đầu vào đầu tiên hoặc là chính xác một, hoặc là chính xác ba.

Chi tiết cài đặt

Bạn phải viết vào một tệp đầu ra mô tả một mạch điện hợp lệ cho $\color{red}{N = 128}$.

Dòng đầu tiên của tệp đầu ra phải chứa một số nguyên đại diện cho số lượng cổng được sử dụng.

Mỗi dòng trong phần còn lại của tệp đầu ra phải tuân theo một trong ba định dạng sau:

NOT in_1
OR in_1 in_2
AND in_1 in_2

Mỗi dòng tương ứng sẽ thêm một cổng NOT, OR hoặc AND. Đối với NOT, in_1 là chỉ số đầu vào của cổng. Đối với ORAND, in_1in_2 là các chỉ số đầu vào của cổng. Chỉ số của cổng được thêm vào ở dòng thứ $i$ sau dòng đầu tiên là $N-1 + i$.

Tổng số cổng không được vượt quá $1024$. Nói cách khác, tổng số dòng trong tệp đầu ra không được vượt quá $1025$.

Nhiệm vụ con

  1. (100 điểm) Không có ràng buộc bổ sung.

Chấm điểm

Đối với mỗi nhiệm vụ con, nếu tồn tại một trường hợp mà mạch điện không vượt qua, điểm số của bạn sẽ là $0$.

Ngược lại, gọi $K$ là số lượng cổng được sử dụng bởi mạch điện. Điểm số của bạn sẽ là $f(K) \times$ [điểm của nhiệm vụ con], trong đó:

$f(K) = \begin{cases} 0 & 1024 < K \\ 0.3 - 0.1 \times \frac {K - 384}{896} & 384 < K \le 1024 \\ 0.6 - 0.3 \times \frac {K - 256}{128} & 256 < K \le 384 \\ 1 - 0.40 \times \frac{K - 215}{41} & 215 < K \le 256 \\ 1 & K \le 215 \end{cases}$

Hình 1: Điểm số cho bài toán ứng với mỗi giá trị K

Bạn phải viết lời giải của mình vào tệp 1.out, sau đó nén các tệp đầu ra thành một tệp .zip duy nhất và gửi tệp .zip đó.

Ví dụ

Dữ liệu vào 1

(input data)

Dữ liệu ra 1

3
OR 0 1
OR 2 3
AND 4 5

Ghi chú

Xét một phiên bản đơn giản hóa của bài toán với $N = 4$ (Lưu ý rằng bạn chỉ cần cung cấp lời giải cho $N = 128$). Mạch điện có:

  • cổng $4$ xuất ra $1$ nếu ít nhất một trong các đầu vào $0$ hoặc $1$ là $1$;
  • cổng $5$ xuất ra $1$ nếu ít nhất một trong các đầu vào $2$ hoặc $3$ là $1$; và
  • cổng $6$ xuất ra $1$ nếu cả đầu ra của cổng $4$ và cổng $5$ đều là $1$.

Người ta có thể kiểm tra rằng với tất cả các đầu vào có thể, mạch điện đưa ra câu trả lời đúng.


o sube archivos uno por uno:

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.