Try   HackMD

THTB Sơn Trà, Đà Nẵng 2023

Bài 1: Xếp lều trại

Test đặc biệt

121 120000 12

121 12 120

Cách 1 - 6 string - liệt kê 6 trường hợp và so sánh

  • a + b + c
  • a + c + b
  • b + a + c
  • b + c + a
  • c + a + b
  • c + b + a

Chuyển thành long long hết? Số

106 có 7 chữ số. 1000000

So sánh theo string vẫn đúng vì các cách ghép có cùng độ dài

Làm tổng quát cho

n xâu ghép lại

  • Sắp xếp giảm dần theo phép so sánh sau

  • "

    a đứng trước
    b
    " nếu như str(a) + str(b) > str(b) + str(a)

    • Dùng hàm sort của thư viện > Độ phức tạp
      O(nlog)
  • Selection Sort (Đức Bảo) = số lượng phép so sánh * ĐPT / 1 phép so sánh =

    O(n2)×O(L)

    • 7 6 9
    • 7 9 6
    • 9 7 6

Bài 2

Bài yêu cầu đếm số ước?

Đếm số bộ

a,b
a×b=n
. Đây là mô tả của thuật toán tìm ước bằng cách chạy for tới căn !!!

Image Not Showing Possible Reasons
  • The image was uploaded to a note which you don't have access to
  • The note which the image was originally uploaded to has been deleted
Learn More →

Bài 3

  • Mật mã Caesar
  • Mật mã Vigenere

https://www.khanacademy.org/computing/computer-science/cryptography

Bài 4

Xâu nhị phân: 0 là không chọn, 1 là có chọn

Subtask 1:
n20

Xâu nhị phân độ dài

n.

  • Bit thứ i =
    1
    nghĩa là ta đã đặt một viên gạch tại ô thứ
    i
    .

Sau khi gen ra mỗi một xâu nhị phân bất kỳ:

  • Thống kê số bước độ dài
    x,y
    , số bước độ dài không phải
    x,y

Subtask 1.5:

(credit: 3H)

a,b tương đối nhỏ

Xét hoán vị các số

0,1. Trong đó
0
là bước đi
x
đơn vị và
1
là bước đi
y
đơn vị

Thêm kỹ thuật nhánh cận (dùng Prefix sum) để ngắt sớm những trường hợp chắc chắn sẽ cho ra kết quả tệ hơn kết quả tốt nhất hiện có.

Subtask 2:
n100

Đặt

f(i) là tổng mảng
A[.]
lớn nhất trong tất cả cách di chuyển đến
i
.

Đặt

dp(i,c) (ý nghĩa như trên ) nhưng
c
là số lượng skill loại 1 (bước nhảy độ dài
x
) đã dùng.

Giả sử có

d bước độ dài
y
đã dùng để đi tới
i

Vì đã biết

x,y,c nên
cx+dy=id=icxy

Khi đi tới bước tiếp theo:

  • Dùng bước nhảy độ dài
    x
    dp(i+x,c+1)
  • Dùng bước nhảy độ dài
    y
    dp(i+y,c)

Đáp án:

dp(n,a)

b=naxy

O(n2)