2024 ICPC Shenyang Travelogue

Summary: A humiliating, crushing defeat.

Day -1

On Thursday, I even purposely skipped my evening general education class, staying in the training team’s classroom from the afternoon all the way into the night, even though my mind was already a complete and utter mess by then.

I really, really, really, really, really, really, really, really, really, really wanted to win a medal. I really wanted to get a bronze medal. A shiny, golden bronze medal. But what’s the point?

That day, the airline canceled our return flight for the weekend night, so hyl and I rescheduled ours, while chy chose to come back on Monday due to an online exam or something over the weekend.

Then I found out that five books of templates and a printed copy of oi-wiki weighed slightly over 20 jin. That day I also asked my teammates whether they preferred 0-indexed or 1-indexed arrays, only to realize that which indexing to use really just depends on the specific problem.

Day 0

Set off for hgh on Friday morning and found that the check-in counters were different from what I saw in videos—they had all become self-service. Moreover, when returning from Shenyang later, I found out that arriving at the airport just half an hour early was enough, as security took no more than ten minutes.

That day I even stuffed a sweater into my bag, only to find it was completely useless. After landing, I realized a single down jacket was more than enough. It wasn’t cold at all.

At 7 PM that night, the three of us started a vp of last year’s Shenyang regional at the hotel. The bad news was discovering I had already done some of the exact same problems in individual practices… The good news was that we got bronze with 3+1 problems solved.

Then we got roasted by the upperclassmen in the group chat for still doing a vp when we were out on a trip. Looking back now, it was probably because we were under too much pressure at the time; if we had relaxed a bit, maybe we would have performed better instead. I have to say, the upperclassmen really had foresight.

Day 1

chy and I slept in until ten before getting up. Originally, we thought we’d have time in the morning to hang out or practice some problems, but the whole morning was just gone like that.

Check-in in the afternoon, then the warm-up contest.

Looking at the first problem of the warm-up, the problem statement was so lengthy that we definitely didn’t need to read it. Flipping forward, there was an interactive gimme problem where querying 100 times was enough. Though I did end up remembering 1923, a year that is perhaps very important to Northeastern University.

Then on the second problem, I misread the prompt like a total war criminal, thinking it was that computational geometry problem from 2023 Shenyang that nobody in the entire venue solved. Only later did I realize the original problem asked for the expected value, while this one asked for the expected value of the square, meaning x and y could be separated independently based on the properties of integrals. Didn’t even dare to think about it during the contest.

The third problem was from Zhihu, a 10100010^{1000} dp, no clue. Only Team Jiangli solved it.

The fourth problem was a Nonogram. Our team was lucky enough to have brought two pencils (hahaha); I can’t even imagine how you’d do this thing without a pencil. Both hyl and chy finished filling it out in the last five minutes. Afterwards, hyl complained to me that he had practically memorized all the numbers by heart.

Anyway, we got bronze in the warm-up with two problems, the exact same warm-up bronze as last time in Hangzhou. And the exact same unmedaled “iron” in the main contest as last time.

Day 2

The seating was very cramped.

Sitting behind us was Zhejiang University’s Team “Next Life”. And we couldn’t overhear a single thing.

We finished the gimme problem in 8 minutes, 1 minute and 2 minutes faster than Team 2 and Team 6 respectively, yet it was of no fucking use. Team 2 took First Blood on Problem B.

After that, we looked at Problem B for quite a while. It seemed our construction wasn’t wrong, but rather our math was off, which led us to believe our construction was flawed. By the way, I saw other teams saying Problem B used a conclusion similar to CRT. What a shame—I had just talked to chy about CRT recently, yet neither of us realized it.

Problem E. After 3 hours, I coded an O(Tn2n)O(Tn2^{n}) bitmask DP and submitted it. TLE’d. Didn’t think of the suffix min optimization, Gooooooooooooooooodddddddddddddd, we were just that close. I don’t know if the simulation chy wrote was correct, but it felt pretty sketchy to me. At the time, I only thought about recording the transitions from a specific state to the final state, instead of recording the transitions for all states in one go—with just a little special handling during elimination, it could have been optimized to answer queries in O(1)O(1).

Problem D. My two teammates quickly came up with the conclusion regarding inversions, but afterwards, they kept trying to figure out how to maintain the exact number of inversions, and even how to explicitly maintain the shift operations—which was probably downright impossible. It never crossed our minds that we only needed to consider the parity. Still too little experience and way too nervous.

Problem B. Constructed half of it in the very last minute, way past the point of no return.

In the late game, I was completely malding. chy kept arguing with me over the approach for Problem E, and everything was a mess. Also, when he was writing the dfs, I should have been watching over his shoulder, so that a few operations that could have been compressed into a couple of lines of XOR wouldn’t have been written out as dozens of lines by him. Mainly, I was just so frustrated, so frustrated, so frustrated, finding it so hard to accept the fact that we were going to get iron again. Ironically, in the last few minutes, when I knew we were truly doomed, I calmed down a bit and made a little progress on Problem B. For the first few hours, I was constantly overheating and under a mountain of pressure. I discussed my bitmask approach for Problem E with hyl, and we didn’t come to any real conclusion either. I also kept feeling that chy’s approach was too crude; we basically didn’t see eye to eye at all. If only T=1. T=10000 was such a massive bait. At one point, I even made the calculation error of 2^16=256. And the trash computer could freeze at any moment; just downloading a sample test case would lag out and spawn several windows. Next time, I need to try eating something during the contest to regulate my emotions. Though “next time” is very far away now.

The key issue was that I couldn’t disprove chy’s approach, relying only on a vague, gut feeling that something wasn’t quite right. During the contest, I never figured out how to optimize mine either; I was even thinking about how to optimize the exponent from 16 down to 9, rather than the 0 that the intended solution actually achieved. At the time, it did cross my mind that the intended solution was to move the entire dp process outside the queries, but I had no idea how to handle the queries under that setup. I simply never thought to process the states for all queries in one fell swoop instead of starting a separate state for each individual query, even though different states could clearly contain one another.

As long as we had solved a second problem before the three-hour mark, we would have gotten a medal. And we had a shot at all three of those problems, did half of each, and none of them were hard, none of them were hard, none of them were hard at all!

But what’s the point. Even if a bronze medal is useless, not even having a bronze medal—doesn’t that make me even more of a piece of trash?

Right after the contest ended, hyl and I rushed to catch our flight at the speed of light, only to find out we were an hour early.

Anyway, I left this heartbreaking city.

Conclusion

The revolution hath utterly failed; comrades must still endeavor.

Anyway, from now on I just need to do cf, as there are no more official contests left to play. Yesterday I did a div1+2 and only solved 2 problems. Probably because of too much stress—felt like my brain couldn’t even turn its gears.