Chơi nhạc (OLP MT&TN 2021 CT)

Kết thúc buổi thi Olympic Tin học miền Trung-Tây Nguyên, có n thí sinh đang đứng ở một hành lang dài. Nếu coi hành lang là trục Ox thì thí sinh thứ \(i (1≤ i≤ n)\) đứng ở vị trí \(p_i\). Thầy Nhỏ dự định chơi một bản nhạc và muốn thu hút tất cả các thí sinh khác lắng nghe. Thí sinh thứ \(i\) đi một đơn vị độ dài mất \(t_i\ (0< t_i≤ 1000)\) năng lượng và có thể nghe thấy tiếng nhạc nếu đứng ở vị trí cách vị trí thầy Nhỏ không quá \(d_i\). Vì không muốn các thí sinh phải mất thêm nhiều năng lượng sau buổi thi, nên thầy Nhỏ muốn chọn vị trí đứng để chơi nhạc sao cho tổng năng lượng cần di chuyển của tất cả thí sinh là nhỏ nhất.

Yêu cầu: Tính tổng năng lượng ít nhất cần di chuyển của tất cả các thí sinh thỏa mãn yêu cầu của thầy Nhỏ.

Input

  • Vào từ thiết bị vào chuẩn có khuôn dạng:
  • Dòng đầu chứa số nguyên \(n\);
  • Tiếp theo là \(n\) dòng, mỗi dòng chứa ba số nguyên không âm \(p_i,t_i,d_i\).

Output

  • Ghi ra thiết bị ra chuẩn một số nguyên duy nhất là tổng năng lượng ít nhất tính được.

Scoring

  • Subtask \(1\) (\(25\%\) số điểm): \(n,p_i,d_i≤ 2000\);
  • Subtask \(2\) (\(50\%\) số điểm):\(n≤ 10^6,p_i≤ 10^6\)\(d_i≤ 10^6\);
  • Subtask \(3\) (\(25\%\) số điểm): \(n≤ 10^6,p_i≤ 10^9\)\(d_i≤ 10^9\).

Example

Test 1

Input
2
0 5 0
7 1 1 
Output
6
...More

Trò chơi chặn đường

Một trò chơi trí tuệ khác mà Đan đã làm là trò chơi chặn đường. Trò chơi diễn ra trên một mê cung được biểu diễn bằng lưới ô vuông kích thước \(m \times n\), các hàng của lưới được đánh số từ \(1\) đến \(m\), các cột của lưới được đánh số từ \(1\) đến \(n\), ô nằm giao giữa hàng \(i\) và cột \(j\) được gọi là ô \((i, j)\). Mỗi ô có thể là ô cấm (ô không được phép đi vào) hoặc là ô tự do (ô có thể đi vào). Một tên cướp đang ở ô \((1, 1)\) và cần di chuyển đến ô \((m, n)\), mỗi bước tên cướp có thể di chuyển sang một trong bốn ô chung cạnh là ô tự do. Nhiệm vụ của người chơi là cần đặt cảnh sát vào một số ô tự do để chặn đường không cho tên cướp đi được đến ô \((m, n)\), tên cướp không thể di chuyển vào ô có cảnh sát. Biết rằng có một số ô tự do có thể đặt cảnh sát, ví dụ nếu ô \((i, j)\) là ô có thể đặt cảnh sát thì sẽ mất chi phí \(c_{ij}\) \((1 \leq c_{ij} \leq 9)\).

Yêu cầu: Tính chi phí ít nhất để chặn được tên cướp không di chuyển được đến ô \((m, n)\).

Input

  • Dòng đầu chứa hai số nguyên dương \(m, n\) \((m \times n > 1)\)
  • Dòng thứ \(i\) \((1 \leq i \leq m)\) trong dòng \(m\) sau, mỗi dòng chứa một xâu độ dài \(n\) , kí tự thứ \(j\) \((1 \leq j \leq n)\) chỉ gồm các loại kí tự sau:
    • Kí tự # mô tả ô tả ô là ô cấm.
    • Kí tự 1 đến 9 mô tả ô là ô tự do và có thể đặt cảnh sát với chi phí tương ứng từ \(1\) đến \(9\).
    • Kí tự . mô tả ô là ô tự do và không được phép đặt cảnh sát.

Chú ý rằng ô \((1, 1)\) và ô \((m, n)\) luôn là ô tự do không được đặt cảnh sát.

Output

  • Gồm một dòng chứa một số nguyên là chi phí ít nhất để đặt cảnh sát nhằm chặn tên cướp không di chuyển được đến ô \((m, n)\), nếu không tồn tại ghi \(-1\).

Scoring

  • Subtask \(1\) (\(30\%\) số điểm): \(m \leq 2; n \leq 1000\).
  • Subtask \(2\) (\(40\%\) số điểm): \(m \times n \leq 2 \times 10^{3}\).
  • Subtask \(3\) (\(30\%\) số điểm): \(m \times n \leq 2 \times 10^{5}\).

Example

Test 1

Input
2 4
.#.1
..2.
Output
2

Test 2

Input
2 4
....
..1.
Output
-1
...More

Khai thác khoáng sản

Miền Trung - Tây Nguyên ngày nay là một vùng đất tiềm năng giàu khoáng sản chưa được khai thác nhiều. Một dự án khai thác mỏ sắt nơi đây dự định xây dựng \(N\) địa điểm và \(M\) con đường nối giữa các cặp điểm, các địa điểm được đánh số từ \(1\) đến \(N\), các con đường được đánh số từ \(1\) đến \(M\). Con đường thứ \(i\) có chi phí xây dựng \(C_i\), giá trị sử dụng \(V_i\) và nối địa điểm \(x_i\) với \(y_i\) cho phép đi lại theo cả hai chiều. Có thể có nhiều con đường nối cùng một cặp điểm. Có \(Q\) địa điểm đặc biệt nơi mà khoáng sắt tập trung nhiều là \(k_1, k_2, \ldots, k_Q\).

Ban quản lý dự án muốn chọn ra một số con đường để xây dựng, sao cho tổng giá trị sử dụng lớn hơn hoặc bằng $V^ * $, bảo đảm đi lại giữa \(Q\) địa điểm đặc biệt, và tổng chi phí xây dựng là càng nhỏ càng tốt. Hãy giúp họ tìm ra một phương án.

Đây là bài toán chỉ cần nộp các file kết quả đầu ra (OUTPUT-ONLY). Thí sinh được cho 20 file đầu vào tương ứng với 20 test, đối với mỗi file đầu vào thí sinh cần nộp một file kết quả đầu ra tìm được. Với mỗi file kết quả đầu ra đúng đắn, điểm của thí sinh được tính theo công thức trong phần Scoring.

Input

Thí sinh tải đầu vào tại đường dẫn: https://lqdoj.edu.vn/media/olp4ck3c.zip
Sau khi giải nén, bạn có 20 file đầu vào được đặt tên là 01.inp, 02.inp, ..., 20.inp, mỗi file mô tả một test theo định dạng:

  • Dòng đầu ghi bốn số nguyên \(N\), \(M\), \(Q\) và $V^ * $ (\(1 \leq N,M,Q \leq 1000\), \(1 \leq V^* \leq 10^9\));
  • Dòng thứ \(i\) trong số \(M\) dòng tiếp theo chứa bốn số nguyên \(x_i, y_i, C_i, V_i\) (\(1 \leq x_i, y_i \leq n\), \(1 \leq c_i, v_i \leq 10^6\));
  • Dòng tiếp theo chứa \(k_1, k_2, \ldots, k_Q\) (\(1 \leq k_i \leq n\)).

Dữ liệu bảo đảm $V^ * $ không vượt quá tổng giá trị sử dụng của tất cả các cạnh, và nếu xây dựng cả \(M\) cạnh thì luôn đảm bảo đi lại giữa \(Q\) đỉnh đặc biệt.

Output

Với file đầu vào name.inp, bạn cần xuất ra file đầu ra name.out chứa kết quả test tương ứng theo định dạng:

  • Dòng đầu ghi một số nguyên là tổng chi phí xây dựng tìm được;
  • Dòng thứ hai ghi một số nguyên \(T\) là số cạnh được xây dựng, theo sau bởi \(T\) số nguyên dương là chỉ số của các cạnh đó.

Mỗi lần nộp bài bạn có thể nộp một hoặc nhiều file đầu ra, bạn cần nén các file đầu ra này lại thành submission.zip để nộp. Ở mục chọn ngôn ngữ của trang nộp bài, chọn "Output".

Subtasks

  • Subtask 1 (\(5\) điểm): \(M \leq 20\);
  • Subtask 2 (\(5\) điểm): \(V^*=1, Q=N\);
  • Subtask 3 (\(10\) điểm): \(V^ * =1\);
  • Subtask 4 (\(15\) điểm): \(Q=N\);
  • Subtask 5 (\(65\) điểm): Không có ràng buộc gì thêm.

Examples

Test 1

Input
6 6 2 6
1 5 2 2
1 3 5 5
2 5 2 1
2 3 2 3
3 5 2 1
4 6 1 4
1 3
Output
5
3 1 5 6
Note

Có ba cạnh được xây dựng là \(1, 5, 6\); đảm bảo đi lại giữa đỉnh \(1\)\(3\). Tổng giá trị sử dụng là \(2+1+4=7 > 6\). Tổng chi phí xây dựng là \(2+2+1 = 5\).

Scoring

Đối với mỗi test, bạn sẽ bị \(0\) điểm nếu đầu ra không hợp lệ; ngược lại, gọi \(C\) là tổng chi phí xây dựng các cạnh mà bạn tìm được, Ban tổ chức có một giá trị \(J\) đối với test đó:

  • Nếu \(\frac{C}{J} < 1\) bạn được 1 điểm cho test đó;
  • Nếu \(1 \leq \frac{C}{J} \leq 2\) bạn được \((\frac{2J-C}{J})^3 \times 100\%\) số điểm cho test đó;
  • Nếu \(\frac{C}{J} > 2\) bạn được 0 điểm cho test đó.
  • Trong quá trình thi, nếu bài làm của bạn tốt hơn của ban tổ chức ở một test nào đó, kết quả này sẽ được cập nhật cho ban tổ chức và dùng để chấm điểm cho các thí sinh khác. Việc cập nhật sẽ được thực hiện nhiều lần trong suốt quá trình thi mà không có thông báo gì thêm.

Điểm của lần nộp là tổng điểm đạt được của các test. Điểm của bài là điểm lớn nhất trong số các lần nộp.

...More

Khôi phục siêu cân (OLP MT&TN 2022 CT)

Các nhà khảo cổ vừa tìm thấy một siêu cân thăng bằng thời tiền sử. Cấu trúc của nó hoặc là chỉ bao gồm một móc treo tạ hoặc là gồm một thanh ngang độ dài nguyên dương, một dây treo chia thanh này thành hai cánh tay đòn có độ dài nguyên dương và mỗi đầu mút của thanh được treo một siêu cân thăng bằng. Các móc treo tạ sẽ được đánh số, việc đánh số các móc treo tạ cho một siêu cân được làm như sau:

  • Nếu siêu cân chỉ bao gồm một móc treo tạ thì dùng số nguyên dương nhỏ nhất chưa dùng để đánh số cho móc treo này;
  • Ngược lại, tiến hành đánh số các móc treo tạ cho siêu cân ở bên mút trái của thanh, sau đó đánh số các móc treo tạ cho siêu cân ở bên mút phải của thanh.

Khi treo các quả tạ có khối lượng nguyên dương vào các móc treo tạ, cân sẽ thăng bằng nếu với mọi thanh ngang, tỷ lệ giữa tổng khối lượng bên trái và tổng khối lượng bên phải bằng với tỷ lệ giữa độ dài cánh tay đòn bên phải và độ dài cánh tay đòn bên trái. Ta nói dãy nguyên dương \(a=(a_1,a_2,\ldots,\ a_k)\) là dãy cơ sở của một siêu cân nếu k bằng số móc treo tạ và khi treo các quả tạ vào các móc theo thứ tự thì siêu cân này thăng bằng, đồng thời tổng các số trong dãy a là nhỏ nhất có thể. Tổng các số trong dãy cơ sở của một siêu cân được gọi là số khối của siêu cân đó. Ví dụ siêu cân trong hình sau có cơ sở là \((2,3,5,3,1,1)\) và số khối là \(15\).

Dễ thấy mỗi siêu cân đều tồn tại và duy nhất một cơ sở. Giả sử \((a_1,a_2,\ldots,\ a_k)\) là cơ sơ của siêu cân ban đầu. Hiện tại có một số móc treo tạ đã bị hỏng. Việc phục chế là thay thế tất cả các móc treo tạ này, mỗi móc treo tạ được thay bằng một siêu cân có số khối tương đương với khối lượng quả tạ treo tại đó. Tức là nếu móc treo tạ thứ \(i\) bị hỏng, nó sẽ được thay thế bằng một siêu cân nào đó có số khối bằng \(a_i\). Các nhà khảo cổ đã thử nhiều cách phục chế khác nhau và ghi lại cơ sở của siêu cân sau phục chế.
Yêu cầu: Hãy đếm số dãy nguyên dương là cơ sở của ít nhất một siêu cân sau phục chế.

Input

Phần đầu của input mô tả cấu trúc của siêu cân đã cho. Cách mô tả cấu trúc của một siêu cân như sau:

  • Chỉ gồm một số 0 nếu siêu cân là một móc treo tạ;
  • Ngược lại sẽ gồm 3 phần:
    • Phần một gồm hai số nguyên dương L,R là độ dài cánh tay đòn bên trái và bên phải;
    • Phần hai mô tả cấu trúc của siêu cân được treo bên mút trái của thanh;
    • Phần ba mô tả cấu trúc của siêu cân được treo bên mút phải của thanh.

Phần sau của input mô tả các móc treo tạ bị hỏng, gồm một số nguyên dương \(m\)\(m\) số nguyên dương phân biệt là chỉ số của các móc treo tạ đó.

Output

In ra một số nguyên là số dãy cơ sở khác nhau có thể có của siêu cân sau khi phục chế, do kết quả có thể rất lớn nên chỉ cần in ra phần dư khi chia cho \(({10}^9+7)\).

Scoring

  • Subtask \(1\) (\(30\%\) số điểm): \(1\le m,\ L,\ R\le10\) và số thanh ngang không quá \(30\);
  • Subtask \(2\) (\(40\%\) số điểm): \(1\le m,\ L,\ R\le10\) và số thanh ngang không quá \({10}^4\);
  • Subtask \(3\) (\(30\%\) số điểm): \(1\le m,\ L,\ R\le30\) và số thanh ngang không quá \({10}^5\).

Example

Test 1

Input
2 4
4 4
3 2
0
0
0
2 3
0
1 1
0
0
2 2 5
Output
3
Note

Các cơ sở có thể có là:

  • \((2, 1, 1, 1, 5, 3, 1, 1)\)
  • \((2, 1, 2, 5, 3, 1, 1)\)
  • \((2, 2, 1, 5, 3, 1, 1)\)
    Dãy \((2, 3, 5, 3, 1, 1)\) không thỏa mãn vì không có siêu cân nào có cơ sở là \((3)\).
...More