10 giờ sáng ngày mai, ngày 2 của IOI 2015 sẽ diễn ra. Xin mời quý vị và các bạn cùng tham gia buổi bình luận trước trận thi. Sau ngày thi 1, đội tuyển Việt Nam đã dành được những lợi thế nhất định. Đây là kết quả của ngày 1:

 

Phạm Văn Hạnh              : Rank 10   | 249.02 điểm

Phan Đức Nhật Minh       : Rank 27   | 205.42 điểm

Nguyễn Việt Dũng          : Rank 71   | 179.45 điểm

Nguyễn Tiến Trung Kiên : Rank 122 | 114.45 điểm

 

Theo tôi, kết quả ngày 1 chưa thực sự phản ánh đúng thực lực của đội tuyển Việt Nam. Các code thủ Việt Nam có vẻ chưa thực sự bung hết sức mình mà mới chỉ chơi thăm dò để đối thủ chủ quan. Có lẽ khác biệt sẽ nằm ở ngày 2, tất cả đều đang nhắm đến ngôi vô địch, hoặc ít ra cũng là huy chương vàng. Chúng ta hãy cùng hy vọng đẳng cấp và tinh thần chiến đấu của đội tuyển Việt Nam sẽ được thể hiện vào ngày 2. Diễn biến chi tiết của ngày 2 sẽ được cập nhật trong topic này, các bạn có thể vào bình loạn, chém gió cũng như gửi những lời chúc tốt đẹp nhất đến đội tuyển Việt Nam.

Rank: http://scoreboard.ioinformatics.org/Ranking.html

Đề bài: http://ioi2015.kz/content/view/1/271

huhu 10h40 rồi mà sao bị sập à :(

Dịch đề nhé:

(Bản dịch chỉ mang tính chất tham khảo, nhiều lần thi Codeforces em bị hiểu nhầm đề rồi nên nếu sai chỗ nào (đặc biệt là bài 5) thì các anh, chị, em bỏ qua cho và comment lỗi + cách sửa phía dưới (gửi tin nhắn cũng được))

Nhấn chữ "Hiện bản gốc" để lấy link đề gốc :D

Bài 4: Ngựa

Mansur thích nuôi ngựa, giống như tổ tiên xưa của anh. Anh hiện đang có đàn gia súc lớn nhất của Ka-dắc-tan. Điều đáng ngạc nhiên là năm trước, Mansur chỉ là một dzgidit (tiếng Ka-dắc-tan nghĩa là một người đàn ông trẻ) và anh chỉ có một con ngựa. Anh mơ anh kiếm được nhiều tiền và cuối cùng trở thành một bai (tiếng Ka-dắc-tan nghĩa là một người rất giàu có)

Hãy đánh số các năm từ \(0\) đến \(N-1\) theo thứ tự thời gian (ví dụ, năm \(N-1\) là năm gần đây nhất). Thời tiết mỗi năm ảnh hưởng đến tốc độ sinh trưởng của đàn gia súc.Với mỗi năm \( i\), Mansur nhớ được chỉ số sinh trưởng \(X[i]\). Nếu đầu năm \(i\) anh có \(h\) con ngựa thì cuối năm anh có \(h.X[i]\) con ngựa. 

Ngựa chỉ có thể bán vào cuối năm. Với mỗi năm, Mansur lại nhớ một số nguyên dương \(Y[i]\): mức giá mà anh có thể bán một con ngựa vào cuối năm. Sau mỗi năm, anh có thể bán bao nhiêu con ngựa cũng được, nhưng phải cùng mức giá \(Y[i]\)

Mansur tự hỏi số tiền lớn nhất anh có thể có được bây giờ nếu ông bán ngựa của mình một cách tối ưu nhất trong những năm qua. Bạn có vinh dự là một khách mời trong toi của Mansur (tiếng Ka-dắc-tan là kì nghỉ của Mansur), và anh ấy nhờ bạn trả lời câu hỏi này.

Trí nhớ của Mansur được cải thiện vào mỗi buổi tối, vì vậy anh cập nhập dữ liệu của mình M lần. Mỗi lần cập nhập sẽ thay đổi một giá trị \(X[i]\) hoặc \(Y[i]\). Sau mỗi lần cập nhập anh ta lại hỏi số tiền lớn nhất anh ta có thể kiếm được là bao nhiêu. Bạn chỉ cần xuất ra một số là tổng của các câu trả lời đó (?) (câu gốc là Mansur’s updates are cumulative: each of  your answers should take into account all of  the previous updates.) Lưu ý rằng mỗi giá trị \(X[i]\) và \( Y[i]\) có thể được cập nhập nhiều lần.

Câu trả lời thật cho câu hỏi của Mansur có thể rất lớn. Để tránh làm việc với số lớn, bạn chỉ cần xuất ra kết quả đã modulo cho \(10^9+7\)

Input

Dòng 1: \(N\)

Dòng 2: \(X[0] ... X[N-1]\)

Dòng 3: \(Y[0] ... Y[N-1]\)

Dòng 4: \(M\)

Dòng \(5, ...,M+4\): ba số \(type\) \(pos\) \(val\), trong đó

\(type\): cập nhập dãy \(X\) nếu \(type=1\), cập nhập dãy \(Y\) nếu \(type = 2\)

\(pos\): vị trí cập nhập

\(val\): giá trị cập nhập vào

 

Bài 5: Sắp xếp

Aizhan có \(N\) số nguyên \(S[0], S[1],...,S[N-1]\). Dãy này gồm các số từ \(0\) đến \(N-1\) Cô đang cố gắng sắp xếp lại dãy này theo trình tự tăng dần bằng cách đổi chỗ một số cặp số. Người bạn của cô Ermek cũng đổi chỗ một số cặp số – không nhất thiết là phải theo cách tối ưu.

Ermek và Aizhan sẽ chỉnh sửa dãy này nhiều vòng. Mỗi vòng, đầu tiên Ermek sẽ đổi chổ hai phần tử và sau đó Aizhan lại đổi chổ một lần nữa. Chính xác hơn, mỗi người nói hai vị trí cần đổi chỗ và đổi chỗ chúng. Lưu ý rằng giá trị của hai vị trí không cần phải khác nhau. Nếu giá trị của chúng bằng nhau, hiển nhiên là dãy vẫn không thay đổi.

Aizhan biết Ermek không thực sự quan tâm đến việc sắp xếp lại dãy \(S\). Cô còn biết chính xác những cặp phần tử mà Ermek sẽ đổi chỗ. Ermek sẽ tham gia \(M\) vòng đổi chỗ. Ta đánh số những vòng này từ \(0\) đến \(M-1\). Với mỗi \(i\) trong khoảng từ \(0\) đến \(M-1\), Ermek sẽ chọn hai vị trí \(X[i]\) và \(Y[i]\) ở vòng \( i\).

Aizhan muốn sắp xếp lại dãy \(S\). Trước mỗi vòng, nếu Aizhan thấy dãy đã được sắp xếp theo trình tự tăng dần, cô và Ermek sẽ dừng đổi chỗ. Cho dãy \(S\) và những phần tử mà Ermek sẽ chọn, nhiệm vụ của bạn là tìm mỗi dãy các lượt đổi chỗ theo cách tối ưu. Dữ liệu đề bài luôn đảm bảo bạn có thể sắp xếp dãy \(S\) trong \(M\) vòng.

Lưu ý rằng nếu Aizhan thấy rằng dãy \(S\) đã được sắp xếp sau lượt của Ermek, cô sẽ chọn đổi chỗ hai phần tử bằng nhau. Kết quả là dãy đã được sắp xếp sau vòng đó. Ngoài ra nếu dãy \(S\) đã được sắp xếp, số vòng cần thiết để sắp xếp dãy là \(0 \)

Input

Dòng \(1\)\(N\)

Dòng \(2\)\(S[0] ... S[N-1]\)

Dòng \(3\)\(M\)

Dòng \(4,...,M+3\)\(X[i]\) \(Y[i]\)

Output

Dòng \(1\)\(R\) (số vòng đổi chỗ ít nhất để sắp xếp dãy)

Dòng \(2+i\), với \(0 \leq i < R\)\(P[i]\) \(Q[i]\)

 

Bài 6: Thị trấn

Có \(N\) thị trấn nhỏ ở Ka-dắc-tan, được đánh số từ \(0\) đến \(N-1\). Ngoài ra còn có một số lượng không biết trước thành phố lớn. Các thành phố nhỏ và thành phố lớn được gọi chung là các khu định cư.

Tất cả các khu định cư của Ka-dắc-tan được kết nối với nhau trong một mạng bằng các đường cao tốc hai chiều. Mỗi đường cao tốc nối liền hai khu định cư khác nhau, và mỗi cặp khu định cư được kết nối trực tiếp bằng nhiều nhất một đường cao tốc. Đối với mỗi cặp khu định cư bất kì \(a\) và \(b\) đều có một đường đi duy nhất có thể đi từ \(a\) đến \(b\) bằng đường cao tốc mà mỗi đường cao tốc chỉ được sử dụng một lần 

Hình sau cho biết một mạng gồm \(11\) thị trấn nhỏ và \(7\) thị trấn lớn. Thị trấn nhỏ là hình tròn được đánh số nguyên, còn thị trấn lớn là hình vuông được đánh số bằng chữ cái in thường

Mỗi đường cao tốc có độ dài là một số nguyên dương. Khoảng cách giữa hai khu định cư là giá trị nhỏ nhất của độ dài các đường đi từ khu định cư này sang khu định cư khác.

Với mỗi thành phố lớn \(C\) ta có thể đo khoảng cách \( r(C)\) đến thị trấn nhỏ ở xa nó nhất. Một thành phố lớn \(C\) là một trung tâm hoạt động nếu \(r(C)\) của nó là nhỏ nhất trong số các thành phố lớn. Khoảng cách giữa trung tâm hoạt động đến thị trấn nhỏ ở xa nhất là \(R\). Vì vậy, \(R\) là giá trị nhỏ nhất trong các giá trị \(r(C)\).

Trong ví dụ trên thị trấn xa nhất từ thị trấn lớn \(a\) là thị trấn \(8\) và khoảng cách giữa chúng là \(r(a)=1+4+12=17\). Với thị trấn \(g\) ta có \(r(g)=17\) (thị trấn nhỏ xa thị trấn \(g\) nhất là thị trấn \(6\)). Trung tâm hoạt động duy nhất của mạng trên là \(f\) với \(r(f)=16\). Vì vậy \(R=16\)

Bỏ một trung tâm hoạt động làm mạng chia thành nhiều thành phần được kết nối. Một trung tâm hoạt đông cân nếu mỗi phần đều có nhiều nhất \([\frac{N}{2}]\) thị trấn nhỏ (không tính thị trấn lớn). Lưu ý rằng \([x]\) là số nguyên lớn nhất không lớn hơn \(x\).

Ở ví dụ trên, thành phố \(f\) là một trung tâm hoạt động. Nếu ta bỏ thành phố \(f\), mạng sẽ bị chia thành bốn phần được kết nối. \(4\) phần này là {\(0, 1, 10\)}, {\(2, 3\)}, {\(4, 5, 6, 7\)} và {\(8, 9\)}. Không có phần nào có quá \([\frac{11}{2}]=5\) thị trấn nhỏ, vì vậy thành phố \(f\) là một trung tâm hoạt động cân.

Nhiệm vụ

-  Tìm \(R\)

-  Tìm các trung tâm hoạt động cân

Subtask

Ở subtask \(1, 2\): Bạn chỉ cần phải xuất ra \(R\) đúng

Từ subtask \(3\) đến subtask \(6\): Bạn phải xuất ra cả \(R\) lẫn các trung tâm hoạt động cân 

Bạn được cung cấp hai thủ tục \(hubDistance\) để tìm \(R\) và thủ tục \(getDistance\) để lấy dữ liệu (cách dùng vui lòng xem ở bản tiếng Anh, mình không hiểu rõ lắm), số lần gọi các thủ tục này ở mỗi subtask được cho ở cột "number of queries" ở bảng dưới đây.

Thông tin thêm ở subtask \(4\): Mỗi thành phố lớn kết nối đến đúng \(3\) khu định cư

Input

Dòng \(1\): Số thứ tự của subtask và số lượng test trong subtask

Dòng \(2\)\(N_1\), số lượng thị trấn nhỏ trong test thứ nhất

\(N_1\) dòng sau: số thứ \(j\)\((1 \leq j \leq N_1)\) ở dòng \(i\)\((1 \leq i \leq N_1)\) là khoảng cách giữa thị trấn nhỏ \(i-1\) và \(j-1\)

Các test sau tương tự ở đằng sau.

Ví dụ test \(1\) trông như sau:

Thí sinh không được đọc trực tiếp file input này mà phải truy cập thông qua một thư viện được cung cấp sẵn

Trả lời bvd
  Hiện bài gốc

Minh 100 bài 4 rồi :D Hy vọng 2 vàng khá cao 

Trả lời hphong
  Hiện bài gốc

Năm nay 2 vàng 2 bạc là ok rùi :))
đúng với đoán mò lúc đầu của em :3 

Trả lời hphong
  Hiện bài gốc

Minh và Hạnh đang đổi chỗ cho nhau!

Ta đang có 3 Vàng :)

Dũng lên rank 20 :3 
thanh niên cứng là đây 

Trả lời hlnhvt
  Hiện bài gốc

https://www.imo-official.org/participant_r.aspx?id=24528

Bui Truc Lam cũng có 2 cái HCB IMO =))

Trả lời sonlh07
  Hiện bài gốc

Thì Phan Đức Nhật Minh sẽ có 2 Vàng (năm nay và năm sau) =))

Nhầm, Phan Đức chứ không phải Phan Đăng, tại nhìn tên viết tắt!

Trả lời bvd
  Hiện bài gốc

who is Phan Đăng Nhật Minh ?? =))

Kiên vẫn chưa bứt phá :(( cố lên Kiên ơi

Trả lời RR
  Hiện bài gốc

Kiên lên bạc rồi :))

Trả lời RR
  Hiện bài gốc

Em VN thi cho Slovakia đang ở mức đồng - bạc :)

Trả lời hphong
  Hiện bài gốc

Cu này hình như mới thi IMO xong mà, gớm thật

Trả lời Kratos
  Hiện bài gốc

HCB IMO 2014, 2015. HCB IOI 2014.

Trả lời RR
  Hiện bài gốc

Sau 3h đã có người đầu tiên đạt 300đ :D

Trả lời RR
  Hiện bài gốc

:'( Kiên xuống đồng rồi, Hạnh cũng đang sắp xuống Bạc :'( cố lên nào các bé :v

Trả lời RR
  Hiện bài gốc

Kiên lên 74 điểm bài 5 rồi :'( nhưng vẫn chưa lên bạc

Trong khi đó Hạnh ko có tiến triển gì nhiều và vẫn đang ở mức cuối vàng :'(

Trả lời bvd
  Hiện bài gốc

Đã IOI rồi còn IMO nữa :)) đúng là hàng khủng :)) Thanh niên gốc VN cứng là đây :)) Ít thấy ông nào cân cả hai kì thi như thế :))

Trả lời Kratos
  Hiện bài gốc

300 rồi có được ra ngoài k nhỉ :3 hay ở lại quấy phá các bạn khác, ngồi ngứa tay bật lung tung thì chết

Trả lời RR
  Hiện bài gốc

Còn gần tiếng nữa hi vọng các em bình tĩnh tự tin không nao núng anh ơi. Em nghĩ team VN sẽ có biến vào tiếng cuối cùng :v