Đ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

Truy vấn max

100 điểm

Cho một cây có trọng số gồm \(n\) đỉnh. Cây là một đồ thị vô hướng liên thông không có chu trình.

Có \(m\) truy vấn, truy vấn thứ \(i\) là một số nguyên dương \(q_{i}\). Mỗi truy vấn bạn cần trả lời có bao nhiêu cặp \((u, v) (u < v)\) mà cạnh có trọng số lớn nhất trên đường đi từ đỉnh \(u\) đến đỉnh \(v\) có giá trị không vượt quá \(q_{i}\).

Input

Dòng đầu tiên gồm hai số nguyên dương \(n, m\) - số lượng đỉnh và số lượng truy vấn.

\(n - 1\) dòng tiếp theo, mỗi dòng gồm \(3\) số \(x, y, w\) - có cạnh nối đỉnh x và đỉnh y, cạnh đó có trọng số là \(w\). \((x, y <= n, w <= 10^9)\)

Dòng cuối cùng gồm \(m\) số nguyên dương \(q_{1}, q_{2}, ... , q_{m}\). \((q_{i} <= 10^9)\)

Output

Gồm \(m\) số, mỗi số cách nhau một dấu cách, là kết quả của các truy vấn.

Example

Test 1

Input
7 5
1 2 1
3 2 3
2 4 1
4 5 2
5 7 4
3 6 2
5 2 3 4 1
Output
21 7 15 21 3 

Test 2

Input
1 2
1 2
Output
0 0 

Test 3

Input
3 3
1 2 1
2 3 2
1 3 2
Output
1 3 3 

Scoring

Có \(25\) phần trăm số test có \(n, m <= 20\)

Có \(25\) phần trăm số test có \(n, m <= 500\)

Có \(50\) phần trăm số test có \(n, m <= 2.10^5\)

root

Trạm điều khiển không gian Orbital-7

100 điểm

Trong một vùng không gian nào đó trong vũ trụ, các tín hiệu năng lượng thu thập từ dãy vệ tinh \(A_1, A_2, \dots, A_N\) được lưu trữ như một chuỗi năng lượng.

Chuỗi này đang được theo dõi để xác định chuỗi con năng lượng tăng ổn định nhất --- chính là chuỗi con dài nhất mà mỗi phần tử đều có năng lượng lớn hơn phần tử trước nó. Ta gọi đó là chuỗi năng lượng tăng. Nói một cách cụ thể hơn, một chuỗi con \(A_{i_1}, A_{i_2}, A_{i_3}, ..., A_{i_k}\) với \(i_1 < i_2 < i_3 < ... < i_k\) được gọi là chuỗi năng lượng tăng khi \(A_{i_1} < A_{i_2} < A_{i_3} < ... < A_{i_k}\).

Tuy nhiên, do tác động của các hố đen không ổn định, trạm điều khiển không gian thực hiện \(Q\) dự đoán, mỗi dự đoán là một mô phỏng việc thay đổi năng lượng tại vị trí \(p_i\) bằng giá trị mới \(x_i\) (một năng lượng giả định từ mô hình AI dự báo) hay gán \(A_{p_i} = x_i\). Nhiệm vụ của bạn là:

Với mỗi dự đoán, giả sử giá trị tại \(A_{p_i}\) bị thay đổi thành \(x_i\), hãy tính lại độ dài chuỗi năng lượng tăng dài nhất (LIS) mới. Lưu ý, mỗi dự đoán là độc lập, sau khi xử lí mỗi dự đoán, chuỗi \(A\) sẽ trở lại chuỗi ban đầu (các phần tử đều không bị thay đổi). Tuy nhiên, nếu trạm điều khiển không gian không đưa ra dự đoán nào (hay \(Q = 0\)), bạn cần phải in ra một dòng duy nhất chính là độ dài lớn nhất của chuỗi năng lượng tăng của chuỗi năng lượng \(A\).

Input

  • Dòng đầu tiên chứa hai số nguyên \(N, Q\) \((1 \leq N \leq 3 \times 10^5, 0 \leq Q \leq 3 \times 10^5)\) --- số vệ tinh và số truy vấn.
  • Dòng thứ hai chứa \(N\) số nguyên \(a_1, a_2, \dots, a_N\) \((1 \leq a_i \leq 10^9)\) --- tín hiệu năng lượng ban đầu từ các vệ tinh.
  • \(Q\) dòng tiếp theo, mỗi dòng gồm hai số nguyên \(p_i, x_i\) \((1 \leq p_i \leq N,\ 1 \leq x_i \leq 10^9)\) --- mô tả truy vấn: giả định thay đổi \(a_{p_i} = x_i\).

Output

In ra \(Q\) dòng tương ứng với yêu cầu bài toán.

Example

Test 1

Input
7 3
5 3 1 4 2 6 5
2 4
3 5
6 3
Output
3
3
4
Note
  • Với truy vấn đầu tiên, dãy \(A\) là \([5, 4, 1, 4, 2, 6, 5]\). Một trong những dãy con có độ dài \(3\) là \(A_3, A_5, A_7\).
  • Với truy vấn thứ hai, dãy \(A\) là \([5, 3, 5, 4, 2, 6, 5]\). Một trong những dãy con có độ dài \(3\) là \(A_2, A_4, A_6\).
  • Với truy vấn thứ hai, dãy \(A\) là \([5, 3, 1, 4, 2, 3, 5]\). Một trong những dãy con có độ dài \(4\) là \(A_3, A_5, A_6, A_7\).

Scoring

  • Có \(20\%\) số test tương ứng với \(20\%\) số điểm có \(Q = 0, N \leq 20\).
  • Có \(20\%\) số test tương ứng với \(20\%\) số điểm có \(Q = 0, N \leq 1000\).
  • Có \(20\%\) số test tương ứng với \(20\%\) số điểm có \(Q = 0, N \leq 3 \times 10^5\).
  • Có \(20\%\) số test tương ứng với \(20\%\) số điểm có \(Q \leq 20, N \leq 3 \times 10^5\).
  • Có \(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ăng kiểu bậc thang

100 điểm

Cho dãy số \(a\) gồm \(n\) số nguyên đánh số từ \(1\) đến \(n\). Ban đầu dãy \(a\) gồm toàn số \(0\). Cho \(q\) truy vấn, mỗi truy vấn được cho dưới dạng hai số nguyên \(i\) và \(k\) : tăng \(a_{i}\) lên \(k\) đơn vị, \(a_{i+1}\) lên \(k - 1\) đơn vị,... \(a_{i+k−1}\) lên \(1\) đơn vị.

Hãy in ra dãy \(a\) sau khi thực hiện \(q\) truy vấn này.

Input

Dòng đầu chứa hai số nguyên dương \(n\) và \(q\) \((n, q \leq 5 \times 10^5)\).

\(q\) dòng tiếp theo, mỗi dòng tương ứng với một truy vấn là hai số nguyên \(i\) và \(k\) \((1 \leq i \leq n; 1 \leq k \leq n-i+1)\).

Output

Một dòng duy nhất là dãy \(a_{1},a_{2},...,a_{n}\) sau khi thực hiện xong \(q\) truy vấn.

Example

Test 1

Input
7 5
5 2
1 6
1 6
7 1
7 1
Output
12 10 8 6 6 3 2 

Scoring

\(30\%\) số test tương ứng với \(30\%\) số điểm có \(n, q \leq 1000\).

\(30\%\) số test tương ứng với \(30\%\) số điểm mọi \(k\) trong \(q\) truy vấn bằng nhau.

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

root

Biến đổi mã gen

100 điểm

Giáo sư 3M vừa mới phát hiện ra sinh vật mới chưa từng xuất hiện trước đây. Sinh vật này rất
kì lạ khi có thể thay đổi mã gen của mình. Mã gen của sinh vật được biển diễn dưới dạng một
dãy các phần tử số nguyên. Được biết trong vòng đời của sinh vật có thể biến đổi duy nhất \(1\)
lần trong đoạn gen từ \(L\) đến \(R\) bằng cách thay đổi các số nguyên trong trên dãy thành \(a_L\).
Giáo sư muốn biết với mã gen đã cho sinh vật này có thể biến đổi thành bao nhiêu mã gen
khác nhau. Các bạn hãy giúp giáo sư 3M nhé.

Input

Vào từ file văn bản GCC.INP:

  • Dòng đầu ghi số nguyên dương \(n\) \((1 \leq n \leq 10^6)\)
  • Dòng thứ \(2\) ghi \(n\) số nguyên \(a_i\) \((1 \leq |a_i| \leq 10^6)\).

Output

Ghi ra file văn bản GCC.OUT:

  • Gồm một số nguyên dương duy nhất là số mã gen khác nhau có thể.

Example

Test 1

Input
4 1
1 2 3
Output
4
Note

Các mã gen là:

  • 1 1 2 3
  • 1 1 2 2
  • 1 1 1 3
  • 1 1 1 1

Scoring

  • \(10\%\) số test tương ứng với \(10\%\) số điểm của \(n \leq 500\).
  • \(20\%\) số test tương ứng với \(20\%\) số điểm của \(n \leq 10^3\), \(1 \leq a_i \leq 9\).
  • \(20\%\) số test tương ứng với \(20\%\) số điểm có các phần tử \(a_i\) phân biệt.
  • \(20\%\) số test tương ứng với \(20\%\) số điểm của \(n \leq 10000\).
  • \(30\%\) số test còn lại tương ứng với \(30\%\) số điểm của bài không có ràng buộc gì thêm
Xem thêm