Đ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.

Dễ

Chọn ĐTQG Quảng Trị 2026 - Bài 3 : Mạng vận chuyển

1 điểm 17% AC 2 đã giải

root

Khi hành lang cứu trợ đã được xác định, trung tâm cần chuyển từ hoạt động cơ động sang vận hành lâu dài và mở rộng hệ thống cứu trợ. Một mạng vận chuyển cố định được xây dựng để duy trì phân phối vật tư lâu dài, phục vụ đồng thời nhiều điểm phân phối.

Hệ thống mạng vận chuyển cố định gồm \(N\) điểm được đánh số từ \(1\) đến \(N\) và \(N-1\) đoạn đường hai chiều, mỗi đoạn nối trực tiếp \(2\) điểm. Giữa \(2\) điểm bất kỳ trong hệ thống luôn tồn tại đường đi và hệ thống được xem như một cây. Điểm \(1\) là trung tâm điều hành. Mỗi điểm \(i\) có chỉ số hiệu quả là \(A_i\) nếu được chọn làm điểm phân phối vật tư. Chỉ số này có thể có âm do điều kiện mặt bằng, nhân lực hoặc chi phí vận hành tại điểm đó không thuận lợi. Mỗi đoạn đường nối trực tiếp từ điểm \(u\) đến điểm \(v\) có một chi phí kích hoạt \(c\). Để phục vụ một điểm phân phối \(v\), tất cả các đoạn trên đường đi từ điểm \(1\) đến điểm \(v\) phải được kích hoạt. Một đoạn chỉ phải trả chi phí kích hoạt một lần, kể cả khi đoạn đó đồng thời phục vụ nhiều điểm phân phối.

Trung tâm cần xây dựng phương án chọn đúng \(K\) điểm làm điểm phân phối vật tư. Giá trị của một phương án bằng tổng chỉ số hiệu quả của \(K\) điểm được chọn trừ đi tổng chi phí của tất cả các đoạn phải kích hoạt.

Yêu cầu: Hãy giúp trung tâm tìm một phương án có giá trị lớn nhất.

Input

  • Dòng \(1\) chứa hai số nguyên \(N, K\) \((1 \le N \le 5 \times 10^4; 1 \le K \le \min(N, 50))\).
  • Dòng \(2\) chứa \(N\) số nguyên \(A_1, A_2, \ldots, A_N\) \((-10^9 \le A_i \le 10^9)\).
  • \(N-1\) dòng tiếp theo, mỗi dòng chứa ba số nguyên \(u, v, c\), biểu diễn đoạn đường hai chiều nối trực tiếp từ điểm \(u\) đến điểm \(v\) có chi phí kích hoạt \(c\) \((1 \le u, v \le N; 1 \le c \le 10^9)\).

Output

  • Ghi ra một dòng chứa một số nguyên duy nhất là giá trị lớn nhất của phương án tìm được.

Example

Test 1

Input
8 3
-6 5 14 6 16 2 13 11
1 2 2
2 3 13
1 4 5
3 5 17
5 6 11
5 7 5
4 8 14
Output
6
Note

Chọn các điểm \(3, 5\) và \(7\). Tổng hiệu quả bằng \(14+16+13=43\). Các tuyến phải kích hoạt là: \(1-2\), \(2-3\), \(3-5\) và \(5-7\) với tổng chi phí \(2+13+17+5=37\). Giá trị phương án là \(43-37=6\).

Scoring

  • Subtask 1 (\(15\) điểm): \(N \le 20\).
  • Subtask 2 (\(20\) điểm): Cây có đúng \(2\) đỉnh lá.
  • Subtask 3 (\(20\) điểm): \(N \le 2000, K \le 20\).
  • Subtask 4 (\(45\) điểm): Không có ràng buộc gì thêm.
Dễ

Vòng lặp

100 điểm 0% AC 0 đã giải

root

Xét một hàm code được viết theo dạng sau:

int code() {
    int ret = 0;
    for (int a = X1; a <= Y1; ++a)
    for (int b = X2; b <= Y2; ++b)
    ...
    for (int <N-th> = XN; <N-th> <= YN; ++<N-th>)
        ret = (ret + 1) \% 1000000007;
    return ret;
}

Có tổng cộng \(N\) vòng lặp lồng nhau.
Vòng lặp thứ \(i\) chạy từ \(X_i\) đến \(Y_i\), trong đó mỗi \(X_i\) hoặc \(Y_i\) có thể:

  • là một số nguyên dương không vượt quá \(100000\), hoặc
  • là tên của một biến thuộc vòng lặp ngoài (ví dụ: a, b, …).

Mỗi vòng lặp đều có ít nhất một trong hai giá trị \(X_i\) hoặc \(Y_i\) là số nguyên (không phải tên biến).
Các biến vòng lặp được đặt tên lần lượt theo bảng chữ cái: vòng 1 là a, vòng 2 là b, ..., vòng \(N\) là chữ cái thứ \(N\).

Yêu cầu của bài toán là tính tổng số lần câu lệnh ret = (ret + 1) % MOD được thực thi.

Kết quả phải được lấy modulo \(10^9 + 7\).

\InputFile

  • Dòng đầu chứa số nguyên \(N \ (1 \le N \le 26)\).
  • \(N\) dòng tiếp theo, dòng thứ \(i\) chứa \(X_i\) và \(Y_i\), được phân tách bởi dấu cách.
    Mỗi giá trị có thể là một số nguyên dương \(\le 100000\) hoặc là tên biến
    a, b, ..., tương ứng với các vòng ngoài.
    Nếu cả hai đều là số, đảm bảo \(X_i \le Y_i\).

\OutputFile
In ra một số nguyên --- giá trị trả về của hàm.

\Scoring

  • Subtask 1 (15 điểm): \(n \le 5\) và mọi \(X_i, Y_i\) (nếu là số) có giá trị không quá \(30\).
  • Subtask 2 (15 điểm): Mọi \(X_i\) và \(Y_i\) đều là số.
  • Subtask 3 (20 điểm): \(X_1 = X_2 = \dots = X_n = 1\)
    và với mọi \(i > 1\), \(Y_i\) là chữ cái thứ \(i-1\) trong bảng chữ cái tiếng Anh
    (nói cách khác, \(Y_2 = \texttt{a}\), \(Y_3 = \texttt{b}\), \(Y_4 = \texttt{c}\), …).
  • Subtask 4 (20 điểm): Với mọi \(i > 1\), \(Y_i\) là chữ cái.
  • Subtask 5 (30 điểm): Không có ràng buộc gì thêm.

\Examples

\beginexample
\exmp
2
1 2
a 3

5

\exmp
3
2 3
1 2
1 a

10

\exmp
3
1 2
a 3
1 b

11

\endexample

Dễ

Bài tập về nhà 2

100 điểm 56% AC 19 đã giải

root

Nhập vào ba số nguyên a, b, c. Nếu a < 5 hoặc b > 10 hoặc c = 20, thì in ra "YES". Ngược lại in ra "NO".

Example

Test 1

Input
3 4 5
Output
YES

Test 2

Input
2 4 20
Output
YES
Dễ

Cung cấp nhu yếu phẩm

100 điểm 0% AC 0 đã giải

root

Thành phố \(S\) có \(N\) thị trấn nhỏ, thị trấn \(i\) có \(C[i]\) người dân sinh sống và giữa 2 thành phố có tối đa một con đường một chiều đi từ thành phố này đến thành phố kia.
Hiện nay thành phố đang chịu ảnh hưởng nghiêm trọng của dịch bệnh, mỗi người dân bị hạn chế đi ra ngoài, bởi vậy nên chính quyền thành phố phải cử bộ đội đi cung cấp nhu yếu phẩm cho mọi người. Giả sử các anh bộ đội xuất phát tại thị trấn \(i\), họ sẽ thông qua những con đường một chiều để đi đến những thị trấn khác, thăm và phát nhu yếu phẩm cho tất cả người dân sinh sống trên thị trấn họ đi qua (lưu ý: mỗi người dân chỉ được thăm và phát nhu yếu phẩm 1 lần).

Yêu cầu đặt ra là với mỗi thị trấn xuất phát, thì có thể thăm và phát nhu yếu phẩm cho tối đa bao nhiêu người dân?

Input

  • Dòng đầu tiên gồm 2 số \(N\) và \(M\), tương ứng số thị trấn trong thành phố \(S\), và số con đường một chiều

  • Dòng tiếp theo gồm \(N\) số nguyên tương ứng số dân sinh sống tại từng thị trấn

  • \(M\) dòng tiếp theo, mỗi dòng gồm 2 số \(u\) và \(v\), tương ứng có con đường từ thị trấn \(u\) đến thị trấn \(v\)

Output

  • Gồm một dòng duy nhất ghi \(N\) số nguyên, số thứ \(u\) tương ứng với số người dân tối đa có thể được thăm và phát nhu yếu phẩm nếu như xuất phát tại thị trấn \(u\). Các số cách nhau bởi 1 khoảng trắng.

Example

Test 1

Input
7 8
1 2 3 4 5 6 7
1 2
2 3
3 4
4 5
5 2
5 6
5 7
4 7
Output
22 21 21 21 21 6 7 

Scoring

  • \(30\%\) số tests có \(1 \le N, M \le 1000\)

  • \(70\%\) số tests có \(1 \le N, M \le 100000\)

Xem thêm