Qingyu✨ 님의 블로그

블로그

Tags
None

New Feature: Forum in each Problem

2025-12-12 23:21:26 By Qingyu

We have updated the issue report feature for each problem. Every problem now has its own independent discussion thread, where you are welcome to post discussions, editorials, or any other related content in the problem forum. All posts are public, making it easier for everyone to find relevant discussions and reference materials.

discussion.png

We will also use the problem forum to share updates, as well as useful resources such as tutorials and write-ups. We hope you enjoy this new feature, and we look forward to hearing your thoughts and contributions there!

IOI 2026 China Team Selection: Current Scoreboard, Tasks & Prediction Game

2025-12-04 18:50:36 By Qingyu

Hi all,

The first stage of the IOI 2026 China Team Selection has just concluded. The top 50 48 participants from the 2025 National Olympiad in Informatics (NOI) will compete for a spot on the Chinese national team for IOI 2026.

The rule of selecting CHN team this year:

  • Homework (10%): also known as mutual tests, where the students were asked to prepare a task, and solve 120 problems on the QOJ training tasks list
  • First stage (CTT; 54%; Dec 2, 2025 — Dec 4, 2025): three contests in classic olympiad format, where each contest worthes 18% of the score. Top 30 participants will advance to the final stage.
  • Final stage (CTS; 36%; Feb 6, 2026 — Feb 13, 2026): two contests in classic olympiad format, where each contest worthes 18% of the score.

The detailed selection rule is available here (in Chinese). After all the selections, top 6 students will be qualified to the interview & thesis defense stage, and four of them will be selected to represent China in IOI 2026.

The current scoreboard can be found here. Thanks to Crysfly for compiling this document.

Past problems of the China IOI Team Selections can be found here (first stage and final stage), and this year's task is available here. You are welcomed to try these tasks or pratice them, but we will not hold an open mirror for these contests.

CTS 2026 Prediction Game

As our usual fun tradition, we will host The CTS 2026 Prediction Game at our Voting Game Site.

You need to predict the 1st to 6th place winners. Each contestant can only be nominated once.

  1. For each contestant you nominate who finishes in the top 4, let $R$ be the actual rank of the contestant and $r$ be the rank you predicted ($1 \le r \le 4$):
    • You receive $10$ points $1 \le R \le 4$, and a bonus $3$ points if $R = r$
    • You receive $5$ points $5 \le R \le 6$
    • You receive $2$ points $7 \le R \le 10$
  2. For each contestant you nominate who finishes in ranked 5 or 6, let $R$ be the actual rank of the contestant and $r$ be the rank you predicted ($5 \le r \le 6$):
    • You receive $4$ points $1 \le R \le 4$
    • You receive $8$ points $5 \le R \le 6$, and a bonus $3$ points if $R = r$
    • You receive $3$ points $7 \le R \le 10$
  3. If you leave a rank blank (i.e., choose not to make a prediction for that rank), you receive 1 point for that empty slot.
  4. There is a bonus question asking if anyone ranked 5 or 6 will enter the national team.

The 3rd Universal Cup Finals: How to submit your tasks

2025-11-21 04:43:30 By Qingyu

Interested in submitting your tasks? Great! We sincerely thank your contribution to the Universal Cup!

Before submitting, you need to have an account on QOJ and properly protect your password. You should submit all your proposals at https://qoj.ac/proposals. All your task materials will be uploaded using your account, and you will receive notifications and feedback from us within the system only.

The submission deadlines

We have three submission cycles this year. Although we do not place any disadvantages on late proposals, we strongly recommend you submit your tasks as early as possible so we can provide a more detailed review of each of your task proposals.

Stage Submission Deadline Decision Notification
1 December 15, 2025 January, 2026
2 February 1, 2026 March, 2026
3 March 1, 2026 April, 2026
- April 1, 2026 Late April, 2026

The final deadline to submit your tasks is April 1, 2026. Late submissions might not be reviewed.

Things need to be prepared

After clicking the "New Proposal" button, you will receive a dedicated submission page for your proposal only. If you need to submit multiple tasks, you must create multiple proposals independently.

In the proposal management page, you need to upload your problem statements, a brief editorial, and a list of conflicts. Each text box provides you with a simple Markdown editor (so you can use $\binom{n}{m}$ or **two** to format your task content). All materials you submitted must be written in either English or Chinese.

Problem Statement

The problem statement should contain the core idea of your task proposal. You do not need to come up with a funny background or detailed definitions. You may submit a formal camera-ready statement if available, but it is fine to just write a few sentences to describe what you would like to ask in this task. Be sure to include constraints in the problem statements — it is fine to just have an approximation; you can change them when preparing your tasks if accepted.

Other sections like input format or example explanations are not required, but you may add them if you find they are helpful for the reviewers to understand your task.

Brief Editorial

A brief editorial is a required component of your task submission. The brief editorial should describe the intended solution to your task, and you may include any alternative or suboptimal solutions in your editorial.

The editorial is used to help the reviewers better understand your proposal. Reviewers are all experienced competitive programmers, so you may utilize any well-known tricks without detailed explanation. You do not need to write every proof of the lemmas you used, but you should keep your editorial informative to the reader.

It is fine if you are not sure your approach will be optimal for this problem. When reviewing your proposals, our reviewers will first come up with their own solutions, and multiple reviewers will work with admitted tasks to see if any improvements could be made for the task.

Furthermore, if your idea comes from a paper or other tasks, you should also list them in the editorial section. You may also list any additional comments in the editorial section.

List of conflicts

Security is the top concern we have in our selection process. You have to list anyone, including non U-Cup contestants, who knows any parts of your task proposals. BE SURE TO MAKE YOUR CONFLICT LISTS COMPLETE BEFORE SUBMITTING YOUR TASKS.

We understand that your tasks might have been proposed to other competitions, and this is common in the competitive programming community. You are required to report all the trainings/contests/competitions you have submitted your tasks to, no matter online or offline, school trainings or international championship.

You should also list all the platforms you used to store or create your tasks, such as GitHub, Polygon, Libre OJ private tasks, Google Docs, etc. This will help us to know the context of your task proposal and evaluate the security of your task proposals.

You have to list everything on your best effort. If you are not sure about any conflicts, just list them. Listing more conflicts will not negatively affect your proposal.

The evaluation process

After finishing all parts of your proposal, you need to make sure that you have switched the status of your proposal to "ready for review". Once you marked ready, we will hide the task content to everyone from the proposal page, so that we could reduce the risk of leaking a proposed task. As such, you will be unable to make any changes to that proposal after clicking ready. If you do need to make any changes after submitting your proposal, you need to send an email to [email protected] with details of your proposals.

Following this, our task reviewing team will begin working with your proposal. Your proposal will only be visible to our task reviewing team and dedicated reviewers. If your proposal is not accepted, we will inform you the list of the people who has reviewed your task, and you may submit any unaccepted proposals to any other competitions.

Our task reviewing team includes:

  • Qingyu Shi
  • Lingyu Jiang
  • Yuhao Du
  • Yaohui Zeng
  • Yichen Li
  • Yaowei Lyu

Q&As

Q: What types of tasks are you accepting?

A: We accept a wide range of task types. We do not have a strict syllabus for our competition, and you may submit tasks on all kinds of topics. Besides classical batch tasks, you can also submit interactive tasks, communication tasks, output-only tasks, or any other innovative task types! Our Technical Committee will coordinate with the Scientific Committee to ensure your task can be properly judged.

Q: Do you accept easier tasks?

A: Sure! In fact, we especially struggled with deciding on the easier part of the problem set when doing previous problem-settings. Creating a great easy task is hard, and we definitely want to hear your ideas.

Q: How many tasks may I submit?

A: There is no limit on the number of tasks you can submit, and we do not have a quota on the number of tasks to be used by a single author. In fact, we once had a single author propose dozens of tasks, and five of them were ultimately admitted.

Q: Do you have any preferences on task styles or topics?

A: No. We have no preferences or quotas on any specific topics. We might propose zero or even four geometry tasks, all depending on the context of the whole contest pool. However, our primary goal for the contest is to create a diverse tasks pool and a balanced problem set with appropriate amounts of thinking and implementation. Some topics, like data structures and combinatorial counting, receive far more proposal submissions than others, making the selection process for these topics extremely competitive. We encourage you to try a more innovative field, and we especially value tasks with deep insight and creativity over advanced knowledge.

Q: What is the definition of "advanced knowledge"? Can I propose a task involving advanced algebra? What about implementing an algorithm mentioned in some FOCS paper?

Q: Again, we do not have a strict syllabus or constraints in our problem-setting process, and everything will be evaluated holistically based on your task approach and the context of the whole contest pool. In our tasks selection process, insight and creativity are the most important factors. A task relying purely on advanced knowledge with no underlying insights might not fit our contest goals. If you decide to propose a task using uncommon competitive programming tricks or advanced techniques, it is best to include more intuitive thoughts or ideas that go beyond the core techniques themselves.

Q: Do you have any examples of good tasks you are looking for?

A: We accept all kinds of tasks. We are not a single-thematic or purely ad-hoc contest, so we cannot really give a definition on what is a good task. Even if you feel your task is not great, it might still be accepted if it fits the needs of our pool. Therefore, submit your task if you are interested.

Q: I want to be an onsite judge. Can I have a spot if my tasks were accepted?

A: We sincerely welcome anyone who wishes to join our judges team. You can apply to be an onsite judge after the problem selection process, and the details will be confirmed after our tasks selection process.

Q: I have more questions...

Q: You can contact me via [email protected].

The 3rd Universal Cup Finals: Call for tasks

2025-11-21 03:33:29 By Qingyu

On behalf of the Universal Cup, I am pleased to announce the Call for Tasks for The 3rd Universal Cup Finals.

The 3rd Universal Cup Finals serves as the final championship of our third season, where the top-performing teams from the online stages and semifinals will compete for the prestigious title of Champion of the 3rd Universal Cup.

We anticipate selecting 10-15 high-quality tasks to create a contest experience comparable to the 2nd Universal Cup Finals. Previous Universal Cup Semifinals/Finals competition tasks can provide a good guide on the desired composition of tasks. You may check them here, here, and most recently here.

We sincerely welcome everyone who is not competing in the Finals to submit their tasks. This is a unique opportunity to share your problems with the strongest competitors in the community. Furthermore, selected task writers may have the chance to serve as an onsite judge at The 3rd Universal Cup Finals.

To submit your task, you must create a proposal and upload all task materials directly to our proposal management system: https://qoj.ac/proposals. This is the only valid method for task submissions. Please do NOT submit your tasks via emails, Discord messages, private messages, or any other channel. A detailed submission guide is given here.

We look forward to seeing your tasks contribute to The 3rd Universal Cup Finals!

IOI 2026 中国国家集训队互测 Round 1

2025-10-17 20:49:52 By Qingyu

IOI 2026 中国国家集训队互测 Round 1 将于 2025 年 10 月 18 日 08:00 ~ 13:00 举办,共五小时,三道题。

比赛链接:https://qoj.ac/contest/2555

命题人:Otomachi_Una, sszcdjr, Made_in_Code

Contest Manager: Renshey

比赛采用 IOI 赛制,具体地说:

  • 每道题目包含部分点
  • 提交可以获得实时反馈,包括每个子任务的通过情况,但不包含测试点详细信息
  • 记分方式如下:
    • 每个子任务的得分为所有提交记录中该子任务所得分的最大值。
    • 每道题目的得分为每个子任务的得分之和。
    • 选手的得分为所有题目的得分之和。
    • 每道题目的分数保留 2 位小数。若两位选手分数相同,则其名次并列。

题目仅包含简体中文题面。

IOI 2026 集训队互测 题目配置教程

2025-10-13 23:11:44 By Qingyu

好像集训队互测马上要开始了,简单从vfk的文档中抄写一下怎样配置自己的题目。

Read more...

基础实验教学研究所 管理规定

2025-09-15 17:34:06 By Qingyu

为了给大家营造一个安全、舒适、卫生的竞赛训练环境,特制定 ACM 竞赛实验室管理规则,请各位竞赛队员共同遵守,我们共同为打造一个整洁舒适的实验室而努力。

ACM 竞赛实验室管理规则

一、实验室安全管理

  1. 不允许携带电动车充电电池进入实验室,一经发现即永久禁止有关人员进入实验室。
  2. 不允许携带和使用电热炉、电热杯、电饭煲、电磁炉等电器,一经发现没收相关设备,并禁止有关人员进入实验室一个月。
  3. 除空调外不允许使用任何需插电的取暖设备,一经发现没收相关设备,并禁止有关人员进入实验室一周。
  4. 长时间离开实验室,请将充电设备切断电源。

二、实验室设备管理

  1. 不允许私带服务器、台式机进入实验室,一经发现即请搬离实验室,并禁止有关人员进入实验室一周。
  2. 每台电脑桌已准备电源插座,请不要随意乱接电源插座。
  3. 离开时若机房内无人,请关闭空调(除里屋服务器机房外)、风扇、照明灯等。

三、实验室环境与卫生管理

  1. 禁止无教师允许的过夜,一经发现禁止有关人员进入实验室一周。
  2. 非学校正常办公时间,允许临时性休息。若需躺卧休息尽量选择在中厅休息区,若使用折叠床,休息后请收回。将不定期检查,连续两次在学校正常工作时间摆放折叠床,则暂时收走,并禁止有关人员进入实验室一周。
  3. 垃圾清理。严禁随意丢弃废弃物;用餐后及时将餐饮垃圾带出实验室并丢弃到楼层垃圾点。
  4. 私人物品定期清理。除学习用品外,不允许将与竞赛学习无关的私人物品长期存放在实验室,请大家保持桌面、柜子整洁。每两周检查一次,逾期不清理则统一运走清理,产生的后果自负。

四、实验室门禁指纹管理

  1. 需要添加指纹的ACM 竞赛队同学,请到理科一号楼 1235房间找老师登记有关信息并添加指纹。
  2. 毕业离开 ACM 竞赛队后取消门禁指纹。
  3. 违反规定被禁止进入实验室的人员,其门禁指纹将在禁止进入期间被取消。
  4. 私自带已禁止进入实验室的同学进入,一经发现,带入者门禁指纹将被删除两周。
  5. 未经允许不得带校外人员进入实验室(往届本校 ICPC 队员除外)

五、实验室监管机制

  1. 24小时录像,不定期抽查。

The 3rd Universal Cup Semifinals Analysis (Draft)

2025-08-26 23:54:11 By Qingyu

The 3rd Universal Cup Semifinals: Analysis Report

Qingyu Shi

This is the draft of the problems of the 3rd Universal Cup Semifinals. We expect to officially release a version of this document in a few months. If you find an error, please send an e-mail to [email protected] or a private message to me (@Qingyu) about it.

Read more...

The 3rd Universal Cup Semifinals

2025-08-16 11:32:39 By Qingyu

Hello everyone, we are happy to announce The 3rd Universal Cup Semifinals!

The Semifinals will be held online to determine the teams advancing to The 3rd Universal Cup Finals. The contest takes place on August 24, 2025, at 11:00 UTC (time in your local timezone) and will last 5 hours in the classical ICPC format.

The contest is open to everyone. If you haven’t registered yet, join us today!

Register!

For more information, please refer to our earlier announcements:

Time Event Place
August 24, 2025
08:00 ~ 10:00 Trial Contest (for system testing) Contest System
Deadline for registering new teams
11:00 ~ 16:00 The 3rd Universal Cup Semifinals Contest System
August 25, 2025
11:30 ~ 13:00 The 3rd Universal Cup Closing Ceremony Live Stream

We sincerely thank the support from our event sponsors --- Huawei and ZhenFund!

Huawei.png
ZhenFund.jpg

Looking forward to seeing you at the Semifinals!

The 3rd Universal Cup Semifinals --- TechNotes

2025-08-15 19:38:07 By Qingyu

The 3rd Universal Cup Semifinals TechNotes

Last update: Aug 15, 2025

Issued by the Technical Committee (TC)

This document contains important technical information related to the Universal Cup Finals programming environment. It is important that your team read and understand all the information below.

Programs

  1. The languages allowed in the contest are C, C++, D, Go, Haskell, Java, Kotlin, Pascal, Python 3 and Rust.
  2. There is a limit of 200 kibibytes on the length of file submitted for judging.
  3. Your program must read its input from "standard input".
  4. Your program should send its output to "standard output". Your program may also send output to "standard error", but only output sent to "standard output" will be considered during judging. (Note that sending too much output to "standard error" might be harmful, in the sense that it can slow your program down.)
  5. If your program exits with a non-zero exit code, it will be judged as a RE with the verdict Dangerous Syscalls. This can have a lot of different causes like division by zero, incorrectly addressing memory (e.g. by indexing arrays out of bounds), trying to use more memory than the limit, reading or writing to files, etc.
  6. Programs submitted to the judges will be run inside a "sandbox".
    • The sandbox will allocate memory for your program as specified in each problem.
    • Your entire program, including its runtime environment, must execute within the specified memory limit for the problem. For interpreted languages (Java, Kotlin and Python), the "runtime environment" includes the interpreter (that is, the JVM for Java and Kotlin and the Python interpreter for Python).
  7. The sandbox memory allocation limit will be the same for every language.
  8. The command and command-line arguments used to invoke your program within the sandbox are the same as those given below.
  9. Programs running in the sandbox will be "pinned" to a single CPU core.

Compilers

C++ (C++98, C++11, C++14, C++17, C++20, C++23, C++26)

All C++ submissions are compiled using GCC 14.2.0. The detailed compilation tag is as follows:

g++ -o answer -x c++ answer.code -lm -O2 -DONLINE_JUDGE -std=c++XX

The -std=c++XX flag will be set according to your chosen standard (98, 11, 14, 17, 20, or 23).

C (C99, C11)

All C submissions are compiled using GCC 14.2.0. The detailed compilation tag is as follows:

gcc -o answer -x c answer.code -lm -O2 -DONLINE_JUDGE -std=cXX

The -std=cXX flag will be set to either c99 or c11 based on your selection.

Java (Java 8, Java 11, Java 17, Java 21)

We use Open JDK for all Java submissions.

  • Java 8: openjdk version "1.8.0_462"
  • Java 11: openjdk 11.0.28
  • Java 17: openjdk 17.0.16
  • Java 21: openjdk 21.0.8

Flags -Xmx2048m, -Xss1024m, and -XX:ActiveProcessorCount=1 will be added when running Java programs.

Python (Python 3)

The Python Interpreter we used is Python 3.13.7.

Rust

The Rust compiler we used is rustc 1.89.0 (29483883e 2025-08-04). The detailed compilation tag is as follows:

rustc -o answer -C opt-level=3 --edition=2021 answer.code

D

The D compiler we used is DMD64 D Compiler v2.109.1. The detailed compilation tag is as follows:

dmd answer -O -release -inline -boundscheck=off

Pascal

The Pascal compiler we used is fpc, Free Pascal Compiler version 3.2.2. The detailed compilation tag is as follows:

fpc answer.code -O2

Haskell

The Haskell compiler we used is ghc, The Glorious Glasgow Haskell Compilation System, version 9.4.7. The detailed compilation tag is as follows:

ghc -O2 -rtsopts -XSafe -no-keep-hi-files -no-keep-o-files -static -o answer answer.hs

Kotlin

The Kotlin compiler we used is kotlinc-jvm 2.1.0 (JRE 21.0.5+11-Ubuntu-1ubuntu124.04). The JVM option we used to run Kotlin programs is the same as we used in Java programs.

Go

The Go compiler we used is go version go1.22.2 linux/amd64.

go build -o answer -ldflags -s -w -trimpath
共 80 篇博客
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8