Trang chủ Tin Học Lớp 8 bai 1: Xâu nhị phân là xâu chỉ gồm các...

bai 1: Xâu nhị phân là xâu chỉ gồm các kí tự 0 hoặc 1. Từ khi học Tin học và biết đến xâu nhị phân thì Tom và Jerry thường hay đố nhau những câu đố liên quan đ

Câu hỏi :

bai 1: Xâu nhị phân là xâu chỉ gồm các kí tự 0 hoặc 1. Từ khi học Tin học và biết đến xâu nhị phân thì Tom và Jerry thường hay đố nhau những câu đố liên quan đến xâu nhị phân. Lần này cũng không ngoại lệ, Tom đưa ra một xâu nhị phân có độ dài N (có N kí tự), và đố Jerry rằng: nếu trong xâu nhị phân tồn tại cặp hai kí tự liên tiếp là ‘11’ hoặc ‘01’ thì xóa hai kí tự đó đi, hỏi sau khi xóa hết những cặp như thế thì xâu còn lại có độ dài nhỏ nhất bằng bao nhiêu? Biết rằng sau khi thực hiện một thao tác xóa thì các kí tự còn lại của xâu sẽ dịch lại gần nhau. Bạn hãy giúp Jerry trả lời câu đố của Tom. Ví dụ: Tom đưa ra xâu ‘0111010’ thì có thể thực hiện các bước xóa như sau: ‘0111010’ xóa cặp 11 bôi đậm, xâu còn lại là ‘01010’, tiếp tục xóa cặp 01 bôi đậm, xâu còn lại là ‘010’, tiếp tục xóa cặp 01 bôi đậm, xâu còn lại là ‘0’. Như vậy cuối cùng xâu còn lại có độ dài là 1 (chỉ còn 1 kí tự). Dữ liệu vào: cho trong file XAUNP.INP gồm một dòng ghi xâu nhị phân có độ dài N (N ≤ 10^7) Dữ liệu ra: ghi ra file XAUNP.OUT một dòng ghi một số là độ dài nhỏ nhất của xâu cuối cùng sau khi thực hiện các thao tác xóa. Ví dụ: XAUNP.INP XAUNP.OUT 01110100 2 Ràng buộc: • 70% tests tương ứng 70% số điểm có N ≤ 10^4 • 30% tests tương ứng 30% số điểm có 104

Lời giải 1 :

Bài 1:

uses crt;
var s: ansistring;
    i, res, cnt: longint;
    c: boolean;
begin
    clrscr;
    readln(s);
    for i:=1 to length(s) do begin
        if s[i] = '1' then begin
            if c then inc(cnt) else inc(res);
        end else begin
            if cnt mod 2 = 0 then inc(res);
            cnt:=0; c:=true;
        end;
    end;
    
    if c and (cnt mod 2 = 1) then dec(res);
    writeln(res);
readln;
end.

Bài 2:

uses crt;
type int = longint;
var i, n, x: int;
    a: array[0..1000000] of int;
    res: int64;
    
begin
    clrscr;
    readln(n);
    for i:=1 to n do begin
        read(x); inc(res, a[x]); inc(a[x]);
    end;
    
    writeln(res);
readln;
end.

Thảo luận

-- https://hoidap247.com/cau-hoi/3858038
-- helpp gap
-- help với
-- https://hoidap247.com/cau-hoi/3884110
-- https://hoidap247.com/cau-hoi/3891851 pls
-- ......................
-- https://hoidap247.com/cau-hoi/3933508
-- https://hoidap247.com/cau-hoi/3984877 helpppp

Lời giải 2 :

Bài 1:
uses crt;
var s: ansistring;
    i, res, cnt: longint;
    c: boolean;
begin
clrscr;
readln(s);
for i:=1 to length(s) do begin
if s[i] = '1' then begin
if c then cnt:=cnt+1 else res:=res+1;
end
else
begin
if cnt mod 2 = 0 then res:=res+1;
cnt:=0; c:=true;
end;
end;
if c and (cnt mod 2 = 1) then res:=res-1;
writeln(res);
readln;
end.
Bài 2:
uses crt;
type int = longint;
var i, n, x: int;
    a: array[0..1000000] of int;
    res: int64;
begin
clrscr;
readln(n);
for i:=1 to n do begin
read(x); inc(res, a[x]); inc(a[x]);
end;
writeln(res);
readln;
end.

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ự 8

Lớp 8 - Năm thứ ba ở cấp trung học cơ sở, học tập bắt đầu nặng dần, sang năm lại là năm cuối cấp áp lực lớn dần nhưng các em vẫn phải chú ý sức khỏe 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