VNOJ - VNOI Online Judge là hệ thống online judge open source chính thức của VNOI, dựa trên nền tảng của hệ thống DMOJ.
VNOJ được tạo ra với mục đích xây dựng một môi trường luyện tập và cạnh tranh dành cho cộng đồng Tin Học Việt Nam. VNOJ là một hệ thống chấm bài tự động hoàn toàn độc lập của VNOI và là bước tiến tiếp theo trong quá trình di dời và nâng cấp VOJ.
Hiện nay, hệ thống VNOJ đã đưa trở lại kho bài tập rộng lớn từ hệ thống cũ VOJ (bao gồm các đề thi Học Sinh Giỏi Quốc Gia, ACM-ICPC, ... qua các năm). Kho bài tập này sẽ được cập nhật thường xuyên với những bài tập mới từ các kì thi, trong đó có những kì thi luyện tập trên VNOJ và những đề thi chính thức của VNOI.
Nếu đây là lần đầu tiên tham gia VNOJ, hãy đăng ký tài khoản. Sau đó, thử bài tập A cộng B.
👉 VNOJ - VNOI Online Judge là hệ thống online judge open source chính thức của VNOI, dựa trên nền tảng của hệ thống DMOJ. Là một hệ thống chấm bài tự động, VNOJ được tạo ra với mục đích xây dựng một môi trường luyện tập và cạnh tranh dành cho cộng đồng Tin Học Việt Nam với kho bài tập và đề thi rộng lớn.
💝 Để lan tỏa sứ mệnh trên, VNOI xin được thông báo đến quý Thầy Cô cần một hệ thống để tổ chức kỳ thi có thể tin tưởng sử dụng VNOJ!
🌟 Quý Thầy Cô, quý Tổ chức có nhu cầu cần được VNOI hỗ trợ tổ chức contest, xin hãy liên hệ với VNOI để báo trước các thông tin về thời gian, số lượng thí sinh cũng như gia hạn trước số giờ để VNOI có thể hỗ trợ được nhanh và tốt nhất.
🤝 VNOI xin chân thành cảm ơn quý Thầy Cô và quý Tổ chức đã quan tâm!
🌟 Lần này, dự án sinh test các đề thi chính thức của VNOI sẽ mang đến các bạn một đề thi có lẽ được rất nhiều bạn quan tâm mong chờ: VOI 2025. Đề thi chọn học sinh giỏi cấp Quốc gia môn Tin học năm học 2024-2025 được đánh giá là một trong những đề thi hay và khó trong nhiều năm trở lại đây. Hiện tại, các bạn có thể thử sức với đề thi này với bộ test được sinh bởi VNOI trên VNOJ.
👉 Hình thức: Contest được mở trong 7 ngày, khi đăng ký tham gia bạn sẽ có 5 tiếng để hoàn thành một contest (sau khi kết thúc contest, các bạn vẫn có thể giải tiếp những bài này thông qua virtual join).
🥰 Xin cảm ơn các bạn TNV VNOI & Admin đã tham gia hỗ trợ chuẩn bị contest này. Thông qua dự án, chúng mình hy vọng các bạn có thể luyện tập hiệu quả và đạt kết quả cao trong các kỳ thi sắp tới. Hẹn gặp các bạn trong kỳ sau của dự án sinh test các kỳ thi chính thức!
✍ Tết đến Xuân về, mai đào lại nở. Những ngày xuân đã ghé đến bên hiên nhà, mỗi người đều chuẩn bị khai bút đầu năm cùng những lời chúc tốt đẹp, những dự định mới trong năm. Để gửi đến một làn gió ấm áp với những kiến thức mới mẻ trong tiết trời se lạnh mùa Xuân, VNOI xin vui mừng ra mắt Tạp chí VNOI năm Ất Tỵ 2025 🎊
✨ Với mục đích truyền tải kiến thức, kinh nghiệm qua nhiều chủ đề, số tạp chí đặc biệt kì này sẽ mang đến cho các bạn những bài viết thú vị, những cuộc phỏng vấn chưa từng có với nội dung cô đọng, phù hợp với nhiều đối tượng độc giả. Món quà đầu xuân VNOI dành tặng cho cộng đồng nhân dịp năm mới Ất Tỵ 2025 này còn là một lời tri ân sâu sắc đến với những cá nhân đã nỗ lực không ngừng nghỉ đóng góp cho nền Tin học Việt Nam trong nhiều năm vừa qua.
❤️ VNOI xin chân thành cảm ơn sự ủng hộ và đóng góp của quý độc giả, các khách mời tham gia phỏng vấn, các tác giả đã gửi bài đến cho Tạp chí trong thời gian qua, và đặc biệt là đội ngũ biên tập viên - những người đã miệt mài làm việc để hoàn thiện Tạp chí.
🤩 Tiếp tục duy trì và lằng nghe những góp ý từ các bạn độc giả, VNOI cung cấp một giao diện tiện lợi trực tiếp trên VNOJ để mọi người dễ dàng tìm đọc, ngoài ra với sự cải tiến về mặt giao diện, Ban biên tập tạp chí sẽ đem lại sự hài lòng đến với nhiều độc giả.
📣 Và không để các bạn đợi lâu nữa, VNOI xin chính thức ra mắt Tạp chí VNOI Ất Tỵ 2025 đến quý độc giả tại giao diện VNOJ hoặc tải về để đọc tại link
😍 Mặc dù được trau chuốt và kiểm tra kỹ lưỡng, song Tạp chí không thể tránh khỏi những thiếu sót. Vì vậy, chúng mình rất mong nhận được những góp ý chân thành đến từ quý độc giả để có thể hoàn thiện hơn cho những ấn phẩm sau nhé!
🎆 Bước sang năm mới Ất Tỵ 2025, VNOI xin kính chúc mọi người một năm mới với nhiều may mắn và thuận lợi. Chúc các bạn sẽ gặt hái được những thành tích thật cao trong các kỳ thi sắp tới, đặc biệt là các “sĩ tử” đang ngày đêm ôn luyện để chuẩn bị cho kỳ thi Chọn đội tuyển dự thi Olympic Quốc tế - TST. Hẹn gặp lại các bạn trong những dự án sắp tới của VNOI nhé!
🤖DTL Algorithms Battle là cuộc thi thuật toán thường niên do DTL tổ chức dành cho tất cả các thí sinh có đam mê và muốn thử sức với Lập trình thi đấu. Quay trở lại với mùa giải thứ 4, cuộc thi năm nay hứa hẹn sẽ mang tới những đề bài hóc búa, thử thách khả năng tư duy và kỹ năng lập trình của các bạn. Đây không chỉ là một cuộc thi, mà còn là cơ hội để các bạn học hỏi, trao đổi kinh nghiệm và phát triển bản thân.
🚀Với chủ đề “Star Wars”, các bạn thí sinh sẽ đi qua 09 hành tinh, tương ứng với 09 bài toán “gai góc” được biên soạn bởi đội ngũ ra đề dày dặn kinh nghiệm.
📈 Contest tính rating cho tài khoản VNOJ khi tham gia contest.
📌 Hình thức:
💻 Thi trực tuyến.
⏳ Thời lượng: 04 tiếng.
📏 Thể thức: AtCoder.
📊 Số lượng: 09 bài.
🎯 Điểm từng bài: 500-750-1250-1750-2250-2250-2500-3000-3500.
🎉 Phần thưởng:
🏆 01 Giải Vô địch: 5.000.000 VND.
🥇 01 Giải Nhất: 3.000.000 VND.
🥈 01 Giải Nhì: 1.000.000 VND.
🥉 02 Giải Ba: 500.000 VND.
🍀 10 set quà ngẫu nhiên dành cho 10 thí sinh may mắn có xếp hạng từ 06 đến 70.
🤖 Trao đổi về DTL Algo Battle ‘24 tại channel #dtl_contest trong From VNOI with love.
🤖 Cảm ơn bạn đã quan tâm tới DTL Algorithms Battle 2024 lần này! BTC rất mong sẽ tiếp tục nhận được nhiều sự ủng hộ từ các bạn trong những cuộc thi sắp tới. Chúc trải nghiệm của bạn tại cuộc thi thật bổ ích và thú vị ^_^.
✨ Các bài toán xử lí xâu luôn là chủ đề thú vị trong lập trình thi đấu. Cây tiền tố (Trie) và thuật toán Knuth-Morris-Pratt (KMP) là hai kĩ thuật vốn đã quen thuộc với các lập trình viên. Sự kết hợp của hai chủ đề trên tạo nên một thuật toán cực kì thú vị, đặc biệt trong những bài tập xử lí nhiều xâu - Aho Corasick. Đây là một thuật toán giúp bạn quản lý một tập xâu và giải bài toán kinh điển như sau:
Cho N xâu S[i] và Q xâu T[j]. Với mỗi xâu T[j], liệt kê tất cả các lần xuất hiện của các xâu S[i] ở trong xâu T[j] này.
Hãy cùng VNOI khám phá thuật toán độc đáo này nhé!
✍️ Người viết: Nguyễn Minh Nhật - HUS High School for Gifted Students
✅ Reviewer:
Lê Minh Hoàng - Trường Đại học Khoa học Tự nhiên - ĐHQG TP.HCM
Nguyễn Hoàng Vũ - Trường Đại học Công nghệ - ĐHQGHN
😍 Cảm ơn các bạn TNV & Admin VNOI đã biên soạn bài viết vô cùng bổ ích này. Thông qua bài viết, VNOI hy vọng rằng các bạn sẽ có thể vận dụng linh hoạt kỹ thuật trong quá trình luyện tập cũng như trong các kỳ thi sắp đến. Cảm ơn các bạn đã luôn đồng hành cùng VNOI, hẹn gặp lại các bạn trong các bài viết sau nhé!
🔥 Cũng đã gần nửa năm trôi qua, chắc hẳn rằng các CP-ers và đặc biệt là các bạn “newbie” đang rất hóng một kỳ Bedao Mini Contest diễn ra phải không nào. Chính vì vậy, team Daor sẽ mang Mini Contest 25 đến với các bạn vào cuối tuần này. Mini Contest được biết đến là một sân chơi bổ ích cho các bạn mới làm quen với lập trình thi đấu. Với đội ngũ ra đề dày dặn kinh nghiệm của Bedao, contest lần này hứa hẹn sẽ vô cùng hấp dẫn.
📌 Bedao Mini Contest gồm 5 bài tập và diễn ra trong 2 tiếng 30 phút, kỳ thi được tổ chức theo thể thức OI, tức số điểm của bạn được tính bằng tổng điểm các test bạn đúng trong bài. Vì vậy hãy tìm cho bản thân một chiến thuật làm bài thật hợp lý để có thể giành được điểm số cao nhất trong thời gian cho phép nhé!
⚠️ Lưu ý đến các thí sinh:
Để tạo ra một sân chơi lành mạnh và công bằng, bất cứ hành vi gian lận trong kỳ thi sẽ bị disqualify, tức không tính kết quả làm bài và bị trừ rating, và sẽ bị cấm vĩnh viễn khỏi VNOJ ở lần tiếp theo.
Các trường hợp sử dụng chatGPT, nhiều người tham gia dưới một tài khoản, sử dụng nhiều tài khoản tham gia thi, vv đều bị nghiêm cấm và sẽ bị xem xét cấm vĩnh viễn khỏi VNOJ
Bedao Mini Contest sẽ chỉ tính rating cho các bạn có rating thấp hơn 1600.
🕗 Thời gian: 20h00 – Chủ nhật, 29/9/2024.
🍀 Thông tin:
Server chấm: VNOJ.
Ban ra đề: Bedao.
🍀 Thể lệ:
Contest được tổ chức trên nền tảng làm bài VNOJ (https://oj.vnoi.info/contest/bedao_m25).
Contest chỉ tính rating cho tài khoản VNOJ có rating thấp hơn 1600 khi tham gia contest.
🍀 Hình thức:
Thi trực tuyến.
Thời lượng: 2 tiếng 30 phút.
Số lượng: 5 bài.
🌸 Trao đổi về Bedao tại From VNOI with love: https://discord.gg/QUK2Tgr
🌸 Cảm ơn các bạn đã luôn đồng hành cùng Bedao. Chúc các bạn có những trải nghiệm thú vị ở contest lần này! 😉
👉 Toán học được biết đến là một phần không thể thiếu trong lập trình thi đấu. Các bài tập liên quan đến lĩnh vực Toán, đặc biệt là Số học, thường là những bài tập tương đối thử thách. Trở lại với chuyên mục VNOI Wiki Project lần này, chúng mình mang đến một chủ đề Số học có thể nói là khá quen thuộc đối với các bạn trẻ chuyên Toán, tuy nhiên có thể còn khá xa lạ đối với các CP-ers, chính là Căn bậc hai modulo P.
Bài viết sẽ trình bày những khái niệm cơ bản nhất liên quan đến chủ đề, cùng với đó là hai thuật toán khác nhau để tính căn bậc hai modulo p. Ngoài ra, bài viết cũng minh họa thuật toán nói trên trong việc tính toán theo modulo P số Fibonacci, mà tiêu biểu là bài toán F - Fibonacci Power của kỳ thi ICPC miền Nam 2023 .
✍️ Biên soạn: Nguyễn Minh Hiển - Trường Đại học Công nghệ, ĐHQGHN
✅ Reviewers: Phạm Công Minh - Trường Đại học Công nghệ, ĐHQGHN
😍 Cảm ơn các bạn TNV & Admin VNOI đã biên soạn bài viết vô cùng bổ ích này. Thông qua bài viết, VNOI hy vọng rằng các bạn sẽ có thể vận dụng linh hoạt kỹ thuật trong quá trình luyện tập cũng như trong các kỳ thi sắp đến. Cảm ơn các bạn đã luôn đồng hành cùng VNOI, hẹn gặp lại các bạn trong các bài viết sau nhé!
👀 Phóng viên thường trực tại VNOJ đưa tin, thời gian gần đây lượt nộp bài trên VNOJ tăng đột xuất. Điều này thể hiện rõ hơn bao giờ hết tinh thần học tập và ôn luyện nhiệt huyết của các bạn trẻ yêu lập trình trước các kì thi lớn sắp tới 💪
💖 Chính vì thế, VNOI đã nâng cấp lên 6 MÁY CHẤM với cấu hình cao và hoạt động hết công suất để đáp ứng nhu cầu của các bạn, nhằm tạo điều kiện tốt nhất giúp các bạn ôn tập và có một phong độ cao nhất trước các kỳ thi.
😉 Hy vọng rằng, với sự nâng cấp này của VNOJ sẽ hỗ trợ các bạn trong quá trình học tập và đem đến cho các bạn trải nghiệm luyện tập tốt nhất. Chúc các bạn đạt được kết quả cao!
🔥 Từ khi giới thiệu lần đầu năm 2021, tính năng Tổ chức trên VNOJ đã nhận được sự ủng hộ nhiệt tình và nhiều phản hồi tích cực từ các thầy cô và các bạn học sinh. Cho đến nay, VNOI đã và đang hỗ trợ miễn phí cho hơn 430 tổ chức với 34.000 thành viên cùng với 250.000 lượt nộp bài mỗi tháng.
📈Hiện nay, với số nộp bài ngày càng tăng của tổ chức (lên tới 74% tổng số lượt nộp toàn hệ thống), để đảm bảo VNOJ có thể duy trì hoạt động một cách bền vững, VNOI sẽ áp dụng quy định mới cho tính năng Tổ chức, thông tin cụ thể như sau:
👉 Từ ngày 15/10/2024, các tổ chức sẽ được cấp miễn phí 3 giờ CPU / tháng cho việc chấm bài, tương đương với khoảng 1080 lượt nộp bài. Thời gian CPU được tính bằng tổng thời gian chạy của mỗi lượt nộp bài. Giới hạn này đã được VNOI cân nhắc kĩ để sao cho trên 80% tổ chức trên VNOJ tiếp tục được sử dụng miễn phí. Để xem lượng sử dụng của tổ chức mình trong các tháng trước, vui lòng xem phần phụ lục bên dưới.
👉 Khi vượt quá giới hạn miễn phí, các tổ chức cần mua thêm giờ CPU chi phí 50.000 VNĐ / 1 giờ. Giờ CPU khi được mua sẽ có giá trị sử dụng vĩnh viễn. Để thanh toán, các thầy cô vui lòng liên hệ với trang VNOI. Bảng phí cụ thể như sau:
📌 Với các trường / trung tâm lớn, VNOI có hỗ trợ dựng website với tên miền riêng & chi phí trọn gói, xin vui lòng tham khảo thông cáo
🤝 Với các tổ chức phi lợi nhuận / các tổ chức ở vùng khó khăn, các thầy cô xin liên hệ page VNOI để được hỗ trợ mức chi phí riêng. Trên đây là Quy định mới đối với tính năng Tổ chức trên hệ thống chấm bài VNOJ của VNOI. Nếu quý thầy cô có bất kỳ câu hỏi hay thắc mắc nào, xin vui lòng liên hệ qua trang VNOI để được hỗ trợ.
PHỤ LỤC: CÁC CÂU HỎI THƯỜNG GẶP
📝 Cách tính tổng số giờ CPU?
👉 Ví dụ 1 bài có 20 bộ test, giới hạn thời gian là 1s mỗi bộ test. Xét 3 ví dụ sau để hiểu rõ hơn về cách tính:
Nếu bài nộp chạy hết 30ms = 0.03s mỗi bộ test => Tốn 0.03*20 = 0.6s CPU
Nếu bài nộp chạy quá thời gian ở tất cả các test => Tốn 1*20 = 20s CPU
Nếu bài làm sai ở test thứ 5 và các test sau sẽ không được chấm (theo luật ICPC) => Bài làm sẽ chỉ tính thời gian 5 test đầu
📝 Tại sao 3 giờ CPU lại tương đương với khoảng 1080 lượt nộp bài?
Theo thống kê dựa trên 10tr lượt nộp bài gần nhất, trung bình một lượt nộp bài sẽ tốn 10s CPU. 3 giờ CPU = 10800 giây ~ 1080 lượt nộp bài
Tuy nhiên, có rất nhiều tổ chức có trung bình chấm bài chỉ mất 4 giây, với các Tổ chức này 3 giờ CPU sẽ tương đương với 2700 lượt nộp bài.
📝 Chuyện gì sẽ xảy ra nếu tổ chức hết hạn mức?
Khi Tổ chức hết hạn mức được cấp, các bài nộp lên sẽ được tạm ngưng chấm cho tới khi gia hạn thành công.
📝 Làm sao để biết số giờ CPU đã sử dụng từng tháng?
Các thầy cô có thể xem lưu lượng chấm bài theo thời gian cũng như hạn mức còn lại của Tổ chức, các thầy cô về Trang chủ (Home) trong Tổ chức, sau đó tìm dòng Organization usage tại bảng Quản lý (ảnh minh họa ở phần comment).
✨ Trong bài viết lần này, VNOI Wiki Project tiếp tục với chuyên đề về các giải thuật cao cấp với tổng Minkowski của các bao lồi. Bài viết là phần hai của chuỗi bài viết về hàm lồi, nối tiếp kĩ thuật “Tham đạo hàm” đã được giới thiệu vào tháng 10/2023. Tổng Minkowski là cách kết hợp hai tập hợp bằng cách lấy tất cả các điểm từ mỗi tập và cộng lại với nhau. Đối với các bao lồi, tổng Minkowski là một bao lồi mới, bao gồm tất cả các tổ hợp cộng của các điểm từ hai bao lồi ban đầu. Nó thường được dùng trong hình học và tối ưu hóa.
Trước khi tìm hiểu về chủ đề trên, độc giả cần nắm vững hàm lồi (convex function) và những khái niệm đã được nhắc đến trong bài Sum-constrained convex optimization
để có thể tiếp thu kiến thức hiệu quả nhất.
Nguyễn Hoàng Vũ - Trường Đại học Công nghệ - ĐHQGHN
Trần Xuân Bách - Đại học Chicago (Mỹ)
😍 Cảm ơn các bạn TNV & Admin VNOI đã biên soạn bài viết vô cùng bổ ích này. Thông qua bài viết, VNOI hy vọng rằng các bạn sẽ có thể vận dụng linh hoạt kỹ thuật trong quá trình luyện tập cũng như trong các kỳ thi sắp đến. Cảm ơn các bạn đã luôn đồng hành cùng VNOI, hẹn gặp lại các bạn trong các bài viết sau nhé!