or
or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up
Syntax | Example | Reference | |
---|---|---|---|
# Header | Header | 基本排版 | |
- Unordered List |
|
||
1. Ordered List |
|
||
- [ ] Todo List |
|
||
> Blockquote | Blockquote |
||
**Bold font** | Bold font | ||
*Italics font* | Italics font | ||
~~Strikethrough~~ | |||
19^th^ | 19th | ||
H~2~O | H2O | ||
++Inserted text++ | Inserted text | ||
==Marked text== | Marked text | ||
[link text](https:// "title") | Link | ||
 | Image | ||
`Code` | Code |
在筆記中貼入程式碼 | |
```javascript var i = 0; ``` |
|
||
:smile: | ![]() |
Emoji list | |
{%youtube youtube_id %} | Externals | ||
$L^aT_eX$ | LaTeX | ||
:::info This is a alert area. ::: |
This is a alert area. |
On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?
Please give us some advice and help us improve HackMD.
Do you want to remove this version name and description?
Syncing
xxxxxxxxxx
Vĩnh Phúc - HSG - THCS - 2025
Bài 3 - Xâu rút gọn.
Xét xâu \(T\), gọi \(nxt[i][j]\) là vị trí của ký tự \(j\) gần nhất, tính từ ký tự thứ \(i\) đến ký tự thứ \(n\), \(-1\) nếu không có.
Dễ dàng tính được bằng công thức truy hồi sau:
Ban đầu, đặt \(pos = 0\), \(res = 1\) với ý nghĩa: xâu hiện tại đã dùng hết \(0\) ký tự, và kết quả đang là \(1\).
Lần lượt duyệt từng ký tự \(c\) của xâu \(S\). Có ba trường hợp:
Độ phức tạp: \(O\) \((|T| \times 26 + |S|)\).
Bài 4 - Dãy đẹp.
Gọi \(dp[i][mx][mul]\) là kết quả khi xét đến phần tử thứ \(i\), \(mx\) là trạng thái của đoạn con có tổng lớn nhất (\(0\) nếu chưa đến, \(1\) nếu đang xây dựng (hay các phần tử đang được thêm vào), \(2\) là đã xây dựng xong dãy), \(mul\) là trạng thái của dãy ta nhân với \(x\) (tương tự như vậy, \(0\) nếu chưa đến, \(1\) nếu đang xây dựng, \(2\) là đã xây dựng xong).
Rõ ràng, \(dp[0][0][0] = 0\), còn lại tất cả đều \(= -inf\).
Có hai cách chuyển trạng thái. Tại mọi thời điểm, ta có thể chuyển trạng thái \(mx\) và \(mul\) như sau: từ \(0\) (chưa bắt đầu) thành \(1\) (đang xây dựng), hay từ \(1\) (đang xây dựng) thành \(2\) (đã xây dựng xong). Lưu ý, chúng ta cũng đã xét trường hợp không nhân đoạn con nào.
Kết quả sẽ nằm ở \(dp[n][2][2]\).
Độ phức tạp: \(O\) \((n)\).