Beaboss's blog

By Beaboss, history, 2 months ago, In English

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?

Full text and comments »

  • Vote: I like it
  • +27
  • Vote: I do not like it

By Beaboss, 5 months ago, In English

TLDR: Link

Star the github repo if this was helpful :)

Have you ever been stuck on a problem and just wanted a small hint, but the editorial revealed the whole solution? Has an editorial you read every missed a small detail that made understanding it a lot more difficult?

I've developed a chatbot that can help with explaining CP editorials and providing hints to problems. The aim of this bot is to help you practice/understand faster and more efficiently, and it has in fact helped me with (more than) a couple problems. It works by using the power of AI, scraping, and prompt-tuning to understand and then explain CP problems in a way that's simple to use yet very powerful.

(Not so) recently, I asked the community for testers. A lot of their feedback has been integrated, but there were many feature requests that I don't have the capacity to implement. If you're interested in contributing features to this open-source project, submit a pull request on GitHub or HuggingFace (latter preferred).

Some features requested

Short Example:

Some pretty key limitations

I hope this bot is helpful.

Full text and comments »

  • Vote: I like it
  • +37
  • Vote: I do not like it

By Beaboss, history, 19 months ago, In English

Hello Codeforces

Podcast Link

I am excited to present to you a podcast created solely for learning Competitive Programming for fun. Whether you're driving to work, brushing your teeth, or laying in your bed, this podcast will be an educational experience where you'll be thought-provoked in a low-stakes setting.

This first episode up on the podcast is about String Hashing, a high division concept, but very fun to learn about. I recommend skipping a bit of the beginning and listening at 1.5x speed, but suit yourself!

A bit about the lecturer: I am currently in the USACO Gold Division and am working towards Platinum (current highest score: 400) and hopefully even further.

Thanks for listening, Rithwik :))

Disclaimer: This podcast is the audio version of in person lectures I do for my high school's CP Club. Although I am thinking of the podcast when lecturing, in the end being in person would be better. But, on that note, if you have any questions feel free to send me a message on codeforces with any questions!

Full text and comments »

  • Vote: I like it
  • +66
  • Vote: I do not like it