It turned blue after 9 months of Atcoder history (python)

It's like a continuation of Last time.

It turned blue on ABC168.

image.png

By the way, I also got advanced at the 2nd PAST in April. image.png

The color has changed, so I would like to look back on the past five months.

Changes in approach

Since January, I've been less motivated than before, and the pace of solving problems has clearly slowed. image.png This is a Unique AC Heatmap for Atcoder Problems. The amount of new AC has visibly decreased since the year changed. From around March, you can see that I have hardly touched anything other than the contest.

However, if you overlay this Heatmap with the performance graph, you can see that ** rather, it has been stable at a high value since the time when the devotion was started. image.png

As a side note, I didn't participate in other contests such as CodeForces, and I didn't read technical books such as ant books. I'm not really doing anything other than the contest. So why is performance going up? Looking back, I came up with some possible factors around this time.

The library is almost complete

I checked, but the only library that increased from the previous article was Seg Tree. Article explaining chokudai's color

Since the knowledge required for competitive programming is almost complete in light blue and blue, the applied power will be different from that point onward.

There is a description, but I think this was correct. Since the time to learn the basic algorithms is almost over, it is inevitable that ** "solve a lot of problems and learn the basic usage and how to determine the usage" is no longer necessary **. Therefore, it can be said that the need for so-called "dedication" to solve a large number of problems has decreased.

In fact, when it comes to water diff and blue diff, there are almost no problems such as pasting and ending, so DFS and DP etc. should be written from 1 according to the problem rather than fixing what was copied from the library. Is easy (it has become an ability that can be said). In that sense, it can be said that the time to prepare the library and aim for time saving is over.

Make sure to look back after the contest

Instead of solving problems outside the contest, we have been holding a firm reflection meeting right after the contest from March to April **. By reading the commentary that comes up immediately after the end and listening to the commentary broadcast on YouTube Live, I tried to reflect on problem A firmly. Even for questions A and B, writing is often complicated by giving priority to speed at the time of the contest, so if you think carefully after the contest is over and think about what kind of solution is the smartest, add a habit of thinking about the code. It also leads to improved quality and eventually speed. Also, in the commentary broadcast, other people make comments such as "I did it this way" or "I got stuck here", and Mr. Sunuke reads the comments and responds to questions and supplements as appropriate. Deepen your understanding of the problem, including the solved problem. ** Real-time participation in the commentary broadcast is really useful for improving performance, so watch all ABCs ** (abuse)

In principle, it was prohibited to solve the problem behind

This is the reason why the performance has become stable. First of all, there are cases where performance drops significantly. "D is pretty annoying, so I thought about E first, but in the end I didn't even know E and passed D at the last minute." I think there are quite a lot of cases like this. In order to prevent such a situation, even if you think "this is difficult", by steadily solving the previous problem without looking away, it has become possible to prevent a significant decrease in performance. If you try to start with the problem behind you, you may get a little higher performance if you are lucky, but the disadvantage of failing and falling down is greater than that, and you will lose in the long run. I think it will be **. You can reduce performance fluctuations by making sure you go through the previous problem before working on the next one, without detouring.

However, as an exception, there are times when "E (F than E) was easier than D". Therefore, when I get stuck a little, I check the standings once to see if there is a reversal of difficulty. In the case where the number of correct answers is close (reversed), the problem may be compared once and the person who seems to be able to solve it may start. However, it is an exception.

Miscellaneous feelings

From here, I will write various things that I felt in retrospect.

Regarding difficult in Atcoder Problems

A common belief is that you have to be able to solve the blue diff to get blue, but that's not very correct. Because, the diff of AtCoder Problems is generally ** "performance when the problem is completed at the last minute of the time limit" **. Therefore, for example, if you solve the problem equivalent to diff1800 (middle blue) in the actual contest, the performance will be about 2000. So you don't have to solve the blue diff to get blue.

Another belief is that if you want to be blue, you have to be able to solve all the light blue diffs. There are humans, their strengths and weaknesses. Since diffs are just averaged, it is natural that the yellow diff can be solved or the water diff cannot be solved depending on the problem. The correct understanding is that as the diff increases, the probability of solving it decreases in a sigmoid manner **. It's quite mentally difficult to tackle a problem that can be solved or not, so even if you can't solve it, it's quite mentally depressing. It is important to have a correct understanding of diff and not to be too serious about being unsolvable.

As for my own experience, if you want to be blue ** ・ 80% of light blue can be solved ・ Half of the first half of blue can be solved ・ Basically unsolvable in the latter half of blue (some are rarely solvable) ** I think that is a guide. (Actually, there are quite a few water diffs that still can't be solved)

Utilization of twitter

If you follow people who are enthusiastically participating in ABC and have a yellow ability, the summary of the solution will be shown after the end, so it is good to refer to it. Also, in my case, many of my acquaintances in college are still engaged in competitive professionals, and the existence of such people also helped maintain motivation. Since we are also human beings, it is quite important that there are ** "people who are working together" **. It's okay to be one-sided, so it's easy to keep your motivation if you watch the competition pros (the good thing about twitter is that anyone can follow one-sidedly).

Accelerate python and pypy

The language update of atcoder was implemented in April, and both python and pypy have become considerably faster. There is also an option called Cython. Multiple recursion, which was a weak field of pypy, has reached a level that is not a serious problem, so it can be said that ** pythons are now able to fight at a sufficiently high rate band **.

Commentary AC

** Commentary AC is not evil at all. ** ** From a human psychological point of view, it tends to be important to "solve by yourself", but other than the contest, "solving by yourself" is not important at all. ** The most important thing is "to be able to solve what you couldn't solve" **, so if you can't do anything after thinking for 15 minutes, you should look at the explanation immediately, and after thinking for 30 minutes, you can't think of an improvement in the amount of calculation. Then you should look at the commentary, and if you think for 40 minutes and the WA doesn't disappear, you should look at the test case. Yeah, if it's fun to groan, that's fine, but from the perspective of improving your ability, it's better to read the commentary at that time and spend some time on "why couldn't you solve it?"

Future goals

When I first started AtCoder, my big goal was to be blue, so I've achieved that for the time being. It will take more effort to raise the rate from here (that will be tougher with the AtCoder contest alone), so it will be a question of whether or not you can keep your motivation to that extent. Well, I don't know anything unless I try. Of course, it's fun just to participate in the contest, but if you're doing it, you're the type of person who wants to work hard to improve the rate ... For the time being, I would like to continue working with an awareness of increasing the rate.

Recommended Posts

It turned blue after 9 months of Atcoder history (python)
A story that turned light blue in 4 months after starting AtCoder with python
Light blue with AtCoder @Python
[Python] Solve 10 past elite problems of Atcoder
Until it turns light blue with AtCoder
atCoder 173 Python
[AtCoder] Solve A problem of ABC101 ~ 169 with Python
[Python] 90 degree clockwise rotation, 90 degree counterclockwise rotation, 180 degree rotation of matrix [AtCoder]
[Answer example (python3)] ABS (AtCoder Beginners Selection) of atcoder
Learning history to participate in team application development in Python ~ After finishing "Introduction to Python 3" of paiza learning ~