Trang chủ Tin Học Lớp 11 VIRUT (VIRUT.*) Hành tinh XYZ có tất cả N người...

VIRUT (VIRUT.*) Hành tinh XYZ có tất cả N người sinh sống được đánh số từ người 1 đến người thứ N, mới đây đã xuất hiện một loại siêu vi rút chủng mới lây lan

Câu hỏi :

VIRUT (VIRUT.*) Hành tinh XYZ có tất cả N người sinh sống được đánh số từ người 1 đến người thứ N, mới đây đã xuất hiện một loại siêu vi rút chủng mới lây lan rất nhanh làm cho cuộc sống vốn đang bình yên của họ bị đảo lộn. Sự việc xảy ra bắt đầu từ người X đi vào rừng sâu thám hiếm, chẳng may đã bị nhiễm loại siêu vi rút này. Loại siêu vi rút này lây lan rất nhanh, nếu hai người “tiếp xúc gần” với nhau mà một trong hai người đã bị nhiễm vi rút thì người còn lại có nguy cơ bị nhiễm vi rút theo. Với thiết bị giám sát, họ đã thống kê được từ sau thời điểm khi người thứ X bị nhiễm vi rút cho đến nay hành tinh XYZ có tất cả M cuộc “tiếp xúc gần”. Cuộc tiếp xúc thứ i là do người ui tiếp xúc với người vi (1 ≤ i ≤ M ). Tuy nhiên điều đáng nói ở đây là thiết bị không chắc chắn được rằng các cuộc tiếp xúc đó có được thống kê theo trình tự thời gian xảy ra từ trước đến sau hay không? Yêu cầu: Hãy cho biết hành tinh XYZ đã có bao nhiêu người có khả năng bị nhiễm loại siêu vi rút nói trên. Dữ liệu vào: Từ bàn phím gồm: - Dòng 1: Chứa bốn số nguyên dương N, M, X, K (N, M ≤ 105 , X ≤ N, 1 ≤ K ≤ 2). K=1 nếu các cuộc tiếp xúc được sắp xếp theo thời gian từ trước đến sau; K=2 nếu thời gian tiếp xúc không đảm bảo đã được sắp xếp. - M dòng sau: Mỗi dòng gồm hai số nguyên dương u và v thể hiện người u và người v tiếp xúc gần với nhau. Kết quả: Ghi ra màn hình một số nguyên duy nhất là số lượng người của hành tình XYZ có thể đã bị nhiễm vi rút. Ví dụ 1: INPUT OUTPUT GIẢI THÍCH 4 3 2 1 1 4 2 1 1 3 3 Người có khả năng nhiễm vi rút gồm: 1, 2, 3 Ví dụ 2: INPUT OUTPUT GIẢI THÍCH 4 3 2 2 1 4 2 1 1 3 4 Người có khả năng nhiễm vi rút gồm: 1, 2, 3, 4

Lời giải 1 :

uses crt;

type    
    int = longint;
    // vector (c++) mỗi push_back thôi :))
    vector = object
        // Mảng động :))
        arr: array of int;
        size: int;
        
        procedure push_back(val: int);
    end;

procedure vector.push_back(val: int);
begin
    setLength(arr, size + 1);
    arr[size]:=val;
    inc(size);
end;
   
const 
    maxn = trunc(1e5);
 
var 
    g: array[0..maxn] of vector;
    ift: array[0..maxn] of int;
    n, m, x, k, res: int;
    
// ----- k = 1 -----
procedure sub1;
var r, u, v: int;
begin
    ift[x]:=1;
    while m > 0 do begin
        dec(m);
        readln(u, v);
        if ift[u] + ift[v] = 1 then begin
            ift[u]:=1;
            ift[v]:=1;
        end;
    end;
    for r in ift do inc(res, r);
    writeln(res);
end;

// ----- k = 2 -----
procedure dfs(v: int);
var u: int;
begin
    if ift[v] = 1 then exit;
    ift[v]:=1;
    for u in g[v].arr do
        dfs(u);
end;

procedure sub2;
var r, u, v: int;
begin
    while m > 0 do begin
        dec(m);
        readln(u, v);
        g[u].push_back(v);
        g[v].push_back(u);
    end;
    
    dfs(x);
    for r in ift do inc(res, r);
    writeln(res);
end;

// ----- main -----
begin
    clrscr;
    readln(n, m, x, k);
    if k = 1 then sub1 else sub2;
end.
    

Thảo luận

-- Bạn code lại bằng pascal được không
-- C++ mình không rành lắm :vv
-- à ok bạn v:

Bạn có biết?

Tin học, tiếng Anh: informatics, tiếng Pháp: informatique, là một ngành khoa học chuyên nghiên cứu quá trình tự động hóa việc tổ chức, lưu trữ, xử lý và truyền dẫn thông tin của một hệ thống máy tính cụ thể hoặc trừu tượng (ảo). Với cách hiểu hiện nay, tin học bao hàm tất cả các nghiên cứu và kỹ thuật có liên quan đến việc mô phỏng, biến đổi và tái tạo thông tin.

Nguồn : Wikipedia - Bách khoa toàn thư

Tâm sự 11

Lớp 11 - Năm thứ hai ở cấp trung học phổ thông, gần đến năm cuối cấp nên học tập là nhiệm vụ quan trọng nhất. Nghe nhiều đến định hướng sau này rồi học đại học. Ôi nhiều lúc thật là sợ, hoang mang nhưng các em hãy tự tin và tìm dần điều mà mình muốn là trong tương lai nhé!

Nguồn : ADMIN :))

Liên hệ hợp tác hoặc quảng cáo: gmail

Điều khoản dịch vụ

Copyright © 2021 HOCTAPSGK