Codeforces and Polygon may be unavailable from December 6, 19:00 (UTC) to December 6, 21:00 (UTC) due to technical maintenance. ×

Why I Can Never Solve Any Hard Problem

Revision en1, by Beaboss, 2024-10-29 02:42:46

Read (and follow) on the blog: https://rithwikg.blogspot.com/

This past CodeForces global round was the first rated Div. 1 in 3 months that was conveniently timed for me, a high school student on the West Coast of the US. Even then, I was at a party that went late the night before, so I was effectively taking this contest on 5 hours of sleep. Whatever.

I breezed through A, B, and C. I encountered a little hiccup at D, but it wasn't too hard of a problem. Now I had more than 2 hours to work on any other problem and, spoiler alert, I didn’t solve anything.

The first place I went wrong was underestimating the difficulty of E. Usually, I can use my intuition to guess some greedy for early problems (I literally guessed B and C in this round), but this has to stop once I reach a problem that's supposed to be hard. But the very notion that a problem is hard can actually change our perception on solving it. If I think a problem is hard, it becomes infinitely harder to motivate myself to find a solution for it. If it's beyond my skill level, what's the chance I can think of and then correctly implement it in the span of a short contest. If so few others have gotten it, why should I be able to?

But where do these notions of problems being hard come from, anyway? I think CodeForces problem ordering is a big perpetuator of this. If I can’t solve E, and F is supposed to be (even marginally) harder, why should I be able to solve F? Now I’m not against problem ordering, it does more good than harm for the fast-paced setting of CodeForces rounds. But there’s an inherent subconscious thought process that acts as a result of this ordering, one which we should try to alienate.

So we’ve identified two problems, one that arises if we perceive a problem as too hard and another if we perceive it as too easy. Striking a balance is nearly impossible, so we need to start thinking of problems as, well, just problems. Notions of difficulty are meant to guide our thinking. Do I really need a segtree on this? Is a bitmask DP too much? It can’t be this easy! But these notions shouldn’t be based on the placement of the problem in a round, or if many others have solved it before. We should approach all problems in more-or-less the same way, and what this approach sacrifices in time it (in theory) makes up for in the long run.

In Global Round 27, E wasn’t out of my reach, and neither were F or G1. During this contest, I could have thought more deeply about E, rather than stress testing my fatally flawed greedy. Or I could’ve moved on to F or even G1. The underlying issue here is thinking too much about the context of a problem, and too little about the problem. I see a similar thought process when I work on OI problems, where I don’t know the expected difficulty (in terms of the US olympiad). Thus, I don’t apply my full problem-solving ability when working on the problem, leaving some of my brain to think about whether the problem will be good practice or if I’m wasting my time. And this exact process of second-guessing what is being done undermines the act of doing.

I don’t claim to have this figured out, and the nature of this blog and my recent performance should imply that. All I can try to do is better next time.

What do you guys think?

Tags codeforces global rounds

History

 
 
 
 
Revisions
 
 
  Rev. Lang. By When Δ Comment
en3 English Beaboss 2024-10-29 02:44:55 16
en2 English Beaboss 2024-10-29 02:42:58 0 (published)
en1 English Beaboss 2024-10-29 02:42:46 3363 Initial revision (saved to drafts)