| # | Bài tập | Điểm | Thời gian: | Giới hạn bộ nhớ |
|---|---|---|---|---|
| 1 | USACO 2020 - Time is Mooney | 100 (p) | 4.0s | 512M |
| 2 | USACO Jan/20 Gold - 3SUM | 100 (p) | 1.0s | 512M |
| 3 | USACO 2020 - Springboards | 100 (p) | 4.0s | 512M |
Bessie đang đi công tác tại Bovinia, nơi có \(N\) thành phố (\(2\le N\le 1000\)) được đánh số \(1\ldots N\) và nối với nhau bằng \(M\) con đường một chiều (\(1\le M\le 2000\)). Mỗi lần ghé thăm thành phố \(i\), Bessie kiếm được \(m_i\) mooney (\(0\le m_i\le 1000\)). Khởi hành từ thành phố \(1\), Bessie muốn ghé thăm các thành phố để kiếm được nhiều mooney nhất có thể rồi kết thúc hành trình tại thành phố \(1\). Để tránh nhầm lẫn, \(m_1=0\).
Di chuyển giữa hai thành phố qua một con đường mất một ngày. Việc chuẩn bị cho chuyến đi rất tốn kém; một hành trình dài \(T\) ngày tiêu tốn \(C\cdot T^2\) mooney (\(1\le C\le 1000\)).
Số mooney lớn nhất Bessie có thể kiếm được trong một chuyến đi là bao nhiêu? Lưu ý rằng phương án tối ưu có thể là Bessie không ghé thăm thành phố nào ngoài thành phố \(1\); trong trường hợp đó, đáp án là \(0\).
Dữ liệu vào được đọc từ tệp time.in.
Dòng đầu tiên chứa ba số nguyên \(N\), \(M\) và \(C\).
Dòng thứ hai chứa \(N\) số nguyên \(m_1,m_2,\ldots,m_N\).
Mỗi dòng trong \(M\) dòng tiếp theo chứa hai số nguyên \(a\) và \(b\) (\(a\neq b\)), cách nhau bởi dấu cách, biểu thị một con đường một chiều từ thành phố \(a\) đến thành phố \(b\).
Ghi ra tệp time.out một dòng chứa đáp án.
Tất cả các test tuân theo các ràng buộc đã nêu.
Ví dụ 1
3 3 1
0 10 20
1 2
2 3
3 1
24
Hành trình tối ưu là \(1\to 2\to 3\to 1\to 2\to 3\to 1\). Tổng số mooney Bessie kiếm được là \(10+20+10+20-1\cdot 6^2=24\).
Cho mảng \(S = [s_1, s_2, \dots, s_N]\) có \(N\) phần tử.
Cho \(Q\) truy vấn có dạng \((a_i, b_i)\), trên mảng con \(S[a_i \dots b_i]\), bạn hãy đếm số bộ ba \(i < j < k\) sao cho \(s_i + s_j + s_k = 0\).
Ví dụ 1
7 3
2 0 -1 1 -2 3 3
1 5
2 4
1 7
2
1
4
Với truy vấn đầu tiên, có \((A_1, A_2, A_5)\) và \((A_2, A_3, A_4)\)
Bessie đang ở trong một lưới hai chiều, nơi cô chỉ được phép đi theo các hướng song song với một trong hai trục tọa độ. Cô bắt đầu tại điểm \((0,0)\) và muốn đến \((N,N)\) (\(1\le N\le 10^9\)). Để giúp cô, trên lưới có \(P\) ván bật (\(1\le P\le 10^5\)). Mỗi ván bật nằm tại một điểm cố định \((x_1,y_1)\) và nếu sử dụng nó, Bessie sẽ đáp xuống điểm \((x_2,y_2)\).
Bessie là một cô bò luôn hướng tới phía trước, vì vậy cô chỉ cho phép mình đi lên hoặc sang phải, không bao giờ sang trái hay đi xuống. Tương tự, mỗi ván bật đều được thiết lập để không bao giờ đưa cô sang trái hay đi xuống. Khoảng cách nhỏ nhất Bessie cần đi bộ là bao nhiêu?
Dữ liệu vào được đọc từ tệp boards.in.
Dòng đầu tiên chứa hai số nguyên \(N\) và \(P\), cách nhau bởi dấu cách.
Mỗi dòng trong \(P\) dòng tiếp theo chứa bốn số nguyên \(x_1\), \(y_1\), \(x_2\), \(y_2\), trong đó \(x_1\le x_2\) và \(y_1\le y_2\).
Tất cả vị trí ván bật và vị trí đích đều phân biệt.
Ghi ra tệp boards.out một số nguyên là khoảng cách nhỏ nhất Bessie cần đi bộ để đến \((N,N)\).
Ví dụ 1
3 2
0 1 0 2
1 2 2 3
3
Đường đi tốt nhất của Bessie là:
Tổng chiều dài đi bộ trên đường đi của Bessie là \(3\) đơn vị.