QOJ.ac

QOJ

Time Limit: 2 s Memory Limit: 256 MB Total points: 100

#22472. Bò trong cây

Statistics
Minh họa

Bessie và Farmer John thăm Mootreepolis nhưng tách nhau và cô bị lạc. Một đội tìm kiếm; chỉ hướng tiếng bò rống, nghe được khắp thành phố, giúp định vị.

Giao thông là cây như tên: $N$ nơi ($1 \le N \le 100,000$), số $0$..$N$-$1$, $N$-$1$ lối hai chiều, đường duy nhất giữa mỗi cặp. Bessie ở một trong $N$ nơi.

Mỗi nơi trong $N$ có một người tìm. FJ gọi để biết hướng tiếng rống, lối hướng tới cô, hoặc đã thấy cô ở đó.

Điện thoại đắt, muốn ít cuộc gọi nhất. Chọn nơi gọi, đặc biệt bảo đảm không quá $20$ trước khi báo vị trí.

Ghi chú: $50\%$ đầu vào có $N$ tối đa $1000$.

Đọc bản đồ từ đầu vào chuẩn, rồi tương tác với trình chấm qua vào/ra chuẩn. Mỗi dòng ban đầu liệt kê lối của một nơi, chỉ số danh sách từ không, cần cho tương tác sau.

Dòng đầu $N$, sau đó hàng xóm từ nơi $0$. Số đầu $K$ ($1 \le K \le N$) là số hàng xóm, rồi $K$ số nguyên $N_{0}$, $N_{1}$, …, $N_{K-1}$ là chỉ số hàng xóm từ không. Lối nối là hàng xóm.

In nơi liên tiếp ra đầu ra chuẩn. Mỗi trả lời là chỉ số lối hướng Bessie trong dòng đầu vào tương ứng. Đọc từ đầu vào chuẩn.

In nơi của cô tự động kết thúc. QOJ đóng luồng trả lời khi tìm thấy; kết thúc bình thường khi đọc trả lời tới hết đầu vào.

Trình chấm có thể thích nghi trả lời, nhưng mọi trả lời phù hợp ít nhất một vị trí có thể.

Tìm thấy thì thông báo điểm khác không: tối đa $20$ truy vấn kể cả hiện tại được $10$, $30$ trở lên được $0$, còn lại $30$ trừ số truy vấn.

Giả sử cô ở nút $5$ của bản đồ, mô tả đầu vào bên phải:

                               Node Count Neighbors
                0   1            0      1 3
                |   |            1      1 4
             2--3---4--5(B)      2      1 3
                |   |            3      4 0 2 6 4
                6   7            4      4 3 7 1 5
                                 5      1 4
                                 6      1 3
                                 7      1 4

Bảng tương tác: query ra chuẩn, response vào chuẩn, location nơi trả lời chỉ. details danh sách hàng xóm đầy đủ có thứ tự và giải thích bằng <>:

Query   Response    Location     Neighbor list details 
  2        0           3          <3>
  6        0           3          <3>
  3        3           4          0 2 6 <4>
  4        3           5          3 7 1 <5>
  5        Done; program will be terminated

Từ $2$, $6$, hàng xóm gần nhất và duy nhất $3$. Từ $3$ là $4$, từ $4$ là $5$. Cô ở $5$, in $5$ thì trình chấm kết thúc chương trình.

Chương trình tương tác

Đẩy đầu ra khỏi bộ đệm để không giữ dữ liệu trong chương trình.

C/C++ dùng stdio.h, thêm:

setbuf(stdout, 0);

gần đầu chương trình.

C++ iostream, đẩy mỗi dòng như sau:

cout << line << "\n" << flush;

Pascal sau mỗi writeln, thêm:

flush(stdout);

Java sau mỗi câu lệnh in, thêm:

System.out.flush();

Quá thời gian sau trả lời có thể do chưa đẩy đầu ra đúng.

Người dùng Java

Đây (hy vọng) là khung vào/ra cần thiết:

import java.io.*;
import java.util.*;
public class cowtree {
    public static void main(String[] args) throws IOException {
        BufferedReader in = new BufferedReader(new
                                          InputStreamReader(System.in));
        /* write ... */
        System.out.println(...);
        System.out.flush();
        /* read a reply */
        response = in.readLine();
        ...

Node: nút

Count: số lượng

Neighbors: hàng xóm

Query: truy vấn

Response: trả lời

Location: nơi

Neighbor list details: chi tiết danh sách hàng xóm

Done; program will be terminated: xong, chương trình kết thúc

write ...: ghi

read a reply: đọc trả lời

Dữ liệu vào

  • Dòng $1$: số nguyên $N$.

  • Các dòng $2..N+1$: dòng $i+2$ mô tả hàng xóm nơi $i$ bằng số nguyên cách nhau $K$, $N_{0}$, …, $N_{K-1}$.

Dữ liệu ra

  • Không dòng trong tệp đầu ra: ghi ra đầu ra chuẩn, không ra tệp.

Ví dụ

Dữ liệu vào 1

8
1 3
1 4
1 3
4 0 2 6 4
4 3 7 1 5
1 4
1 3
1 4

Dữ liệu ra 1

Tác giả bài toán: MIT, 2010

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.