Điều hướng chính

Ngôn ngữ

Phím tắt

/
Chuyển đến ô tìm bài
g p
Đi đến bài tập
g c
Đi đến kỳ thi
g u
Đi đến người dùng
?
Mở trợ giúp phím tắt

Bài tập

Bài được chọn theo nhịp luyện tập của bạn, cùng mọi bài mới vừa lên.

root

GCD 1

100 điểm

Cho hai số nguyên dương \(n\) và \(g\). Nhiệm vụ của bạn là đếm số lượng các tập con khác rỗng của tập hợp \(\{1, 2, \ldots, n\}\) có ước chung lớn nhất (UCLN) đúng bằng \(g\).

Input

  • Dòng duy nhất chứa hai số nguyên \(n\) và \(g\) (\(1 \le g \le n \le 10^6\)).

Output

  • In ra một số nguyên duy nhất là đáp án của bài toán, sau khi chia lấy dư cho \(10^9 + 7\).

Example

Test 1

Input
6 2
Output
5

root

Bài 1. Chia nhóm (GROUP)

100 điểm

Mark là CEO của tập đoàn Space X, ông được phân công làm công tác tổ chức cho toàn bộ nhân viên của tập đoàn đi tham quan các trạm không gian. Tập đoàn có \(n\) nhân viên, nhân viên thứ \(i\) có mã số nhân viên là \(a_i\).

Mark sẽ chia nhân viên của tập đoàn thành 2 nhóm, nhóm A và nhóm B, mỗi nhóm cần ít nhất một nhân viên. Để tạo sự gắn kết giữa các thành viên, mỗi nhóm sẽ chọn một mã màu để đại diện cho nhóm mình, mã màu có giá trị trong khoảng từ \(1\) tới \(10^9\) sao cho mã màu được chọn sẽ nhỏ hơn hoặc bằng mã số nhỏ nhất của các thành viên trong nhóm. Hai cách chia được gọi là khác nhau nếu một nhân viên thuộc một nhóm khác hoặc có một mã màu khác trong hai cách chia.

Hãy giúp Mark đếm số cách chia nhóm khác nhau cho kế hoạch của mình. Vì số cách chia có thể rất lớn, kết quả được ghi ra sau khi lấy modulo cho \((10^9+7)\).

Input

Cho trong file GROUP.INP, có cấu trúc:

  • Dòng 1: Chứa số nguyên dương \(n\), là số nhân viên của tập đoàn \((2 \le n \le 10^5)\).
  • Dòng 2: Chứa \(n\) số nguyên dương \(a_1,a_2,\ldots,a_n\), là mã số của các nhân viên \((1 \le a_i \le 10^9)\).

Các số trên cùng một dòng được ghi cách nhau ít nhất một dấu cách.

Output

Ghi ra file GROUP.OUT:

  • Dòng 1: Ghi một số nguyên duy nhất là kết quả của bài toán.

Example

Test 1

Input

sample 2 1 2

Output

sample 4

Note

Với \(n=2\), \(a_1=1\) và \(a_2=2\):

    - Trường hợp 1: Nhóm A gồm $a_1=1$ (min=1) nên có 1 cách chọn mã màu; nhóm B gồm $a_2=2$ (min=2) nên có 2 cách chọn mã màu. Ta được $1 \times 2 = 2$ cách chia.
    - Trường hợp 2: Nhóm A gồm $a_2=2$ (min=2) có 2 cách chọn mã màu; nhóm B gồm $a_1=1$ (min=1) có 1 cách chọn mã màu. Ta được $2 \times 1 = 2$ cách chia.

    Tổng lại có 4 cách chia.

Test 2

Input

sample 2 2 3

Output

sample 12

Note

Với \(n=2\), \(a_1=2\) và \(a_2=3\):

    - Trường hợp 1: Nhóm A gồm $a_1=2$ (min=2) có 2 cách chọn màu; nhóm B gồm $a_2=3$ (min=3) có 3 cách chọn màu. Ta được $2 \times 3 = 6$ cách.
    - Trường hợp 2: Đổi vai trò nhóm A và B, ta được thêm 6 cách nữa.

    Tổng lại có 12 cách chia.

Test 3

Input

sample 3 1 2 3

Output

sample 14

Note

Với \(n=3\), \(a_1=1, a_2=2, a_3=3\). Các cách chia thành 2 nhóm tập hợp là:

    - $\{1\}$ và $\{2, 3\}$: Nhóm thứ nhất có min=1 (1 màu), nhóm thứ hai có min=2 (2 màu). Có $1 \times 2 = 2$ cách chọn màu. Hoán đổi A và B ta có $2 \times 2 = 4$ cách.
    - $\{1, 3\}$ và $\{2\}$: Nhóm thứ nhất có min=1 (1 màu), nhóm thứ hai có min=2 (2 màu). Tương tự có 4 cách.
    - $\{1, 2\}$ và $\{3\}$: Nhóm thứ nhất có min=1 (1 màu), nhóm thứ hai có min=3 (3 màu). Có $1 \times 3 = 3$ cách. Hoán đổi A và B ta có $3 \times 2 = 6$ cách.

    Tổng số cách chia: $4 + 4 + 6 = 14$ cách.

Scoring

  • 40% số test tương ứng với 40% số điểm có \(n \le 20\).
  • 40% số test tương ứng với 40% số điểm có \(n \le 30\) và \(a_i \le n\) với mọi \(i\).
  • 20% số test tương ứng với 20% số điểm còn lại không có ràng buộc gì thêm.

root

Tô màu mảng

100 điểm

Bạn được cho một mảng gồm \(n\) phần tử chưa được tô màu. Ban đầu, mỗi phần tử có giá trị bằng \(0\).

Bạn cần xử lý \(q\) truy vấn dạng \((l, r, c)\) --- tô toàn bộ các phần tử từ chỉ số \(l\) đến \(r\) bằng màu \(c\). Mỗi truy vấn sẽ ghi đè lên các giá trị đã tô trước đó. Sau tất cả các truy vấn, hãy in ra màu cuối cùng của từng phần tử.

\InputFile

  • Dòng đầu gồm hai số nguyên \(n\) và \(q\) (\(1 \le n, q \le 10^6\)) --- độ dài mảng và số truy vấn.
  • \(q\) dòng tiếp theo, mỗi dòng gồm ba số nguyên \(l, r, c\) --- truy vấn tô màu đoạn \([l, r]\) bằng màu \(c\)(\(1 \le l \le r \le n\), \(c \le 10^9\)).

\OutputFile
In ra trên 1 dòng \(n\) số nguyên, số thứ \(i\) chứa màu cuối cùng của phần tử ở vị trí \(i\).

\Scoring

  • Có \(30\%\) số điểm ứng với \(n, q \le 1000\).
  • Có \(30\%\) số điểm ứng với \(n, q \le 10^5\).
  • \(40\%\) số điểm còn lại không có ràng buộc thêm.

Example

Test 1

Input
4 3
1 3 2
2 4 6
2 3 7
Output
2 7 7 6 

root

Cây con

100 điểm

Cho một cây gồm \(N\) đỉnh được đánh số từ \(1\) đến \(N\) và \(N - 1\) cạnh.

Một thành phần liên thông trong cây là một tập các đỉnh sao cho có thể di chuyển giữa \(2\) đỉnh bất kì trong tập với các cạnh có cả hai đầu là \(2\) đỉnh thuộc tập.

Yêu cầu của bạn là: đếm số lượng tập đỉnh liên thông trong cây có đúng \(K\) đỉnh.

Lưu ý: Hai tập đỉnh được coi là khác nhau khi có một đỉnh thuộc tập này nhưng không thuộc tập kia.

Input

  • Dòng đầu tiên chứa hai số nguyên \(N\) và \(K\) \((1 \le N \le 5000, 1 \le K \le N)\).
  • \(N-1\) dòng tiếp theo, mỗi dòng chứa hai số nguyên \(u\) và \(v\) \((1 \le u, v \le N)\), thể hiện một cạnh trong cây.

Output

In ra một số nguyên duy nhất --- số lượng tập đỉnh liên thông có đúng \(K\) đỉnh \(mod\) (\(10^9 + 7\)).

Example

Test 1

Input
5 3
1 2
1 3
2 4
2 5
Output
4

Scoring

  • Subtask 1 (20 điểm): \(N \le 20\)
  • Subtask 2 (30 điểm): \(N \le 300\)
  • Subtask 3 (50 điểm): Không có ràng buộc bổ sung
Xem thêm