Improving efficiently: beyond "just solve more problems"?

您所在的位置:网站首页 codeforces贴吧 Improving efficiently: beyond "just solve more problems"?

Improving efficiently: beyond "just solve more problems"?

2023-10-02 03:10| 来源: 网络整理| 查看: 265

The idea below should help CM or M (maybe expert too) level participants reach IM or GM.

In my opinion, the easiest way to improve is to first find the topics you are weak at. This can be done by either looking at some recent contests you have done, or by doing a couple of VC. You should be able to see some types of problems you are troubled with.

Well now you have a topic you are weak at or you dislike (I'll assume it's one of the CF tags). One way to improve on it, is by simply opening the "Problemset page", choosing the tag, sorting the problems by difficulty and starting to solve them in order. This process isn't bad, but it requires a lot of time and also you solve a lot of problems that might be easy for you.

What I did (and I think it's one of the fastest ways to improve on a certain topic) is the following:

Again we will sort the problems, but we will start from ones that are quite hard for us. When I did this there were no difficulties, but as we have them now, I think by starting from problems with difficulty equal to ("Your rating" + 200), you will be solving problem that will be quite hard for you. So far the process is the same as a lot of tips you might have read in other blogs for training suggestions. The difference comes when we look at the way we solve the problems.

Most of the times when I solve a problem to train on a certain topic, I will spend no more than 10 minutes before I look at the solution. That's because if I have been thinking for 10 minutes straight, probably there is a concept I don't know or there is an observation I'm missing. And as you are training it is better to solve more problems (you will learn more "tricks" and ideas). So you should look at the editorial after 10 minutes.

If in the editorial there is a concept you aren't familiar with, learn it and find one or two problems related to it (you can easily find them by googling). If you know everything from this editorial, you probably now know the observation(s) you were missing. Remember them so next time you won't miss them (generally in CP I have noticed that there are a lot of problems which are just a combination of such observations). Well finally you can implement the problem. If it isn't hard to implement or you have implemented such a thing recently you might choose to not code it because probably it won't be very beneficial for you.

The whole process of solving one problem will be 30-40 minutes if you couldn't initially solve the problem or about 20 minutes if you were able to solve it. Imagine you train for 1 hour/day. This means you should be able to solve 2 problems/day. To get confident in a topic, I think solving 10-15 problems is enough to learn the most common ideas and tricks. This means that a week or two are enough for one tag. If you spend more time every day, it will be even faster.

Obviously there is a limited number of topics you are bad at. So if you are serious, in two or three months you will be good at the majority of them. Now to be able to increase your level, you should train on one of the following:

1) Finding observations on problems faster

2) Implementing the problems faster

I'm not exactly sure how to train on the latter, but my guess is by simply solving more problems and implementing all of them will be sufficient. On the other hand, I know how to improve on the former. If you train on constructive problems ("constructive algorithms" tag on CF) you will significantly improve the time you spend on finding observations. Solving some math problems or reading the posts for the combinatorics tag on AoPS also improves that. Finally solving some problems from OIs can also be helpful, as those problems tend to have a lot of observations that are connected to each other and also because of the subtasks the process of finding them is easier.

Also something useful is to do the CF rounds ( when you can and CF holds them at a nice time :') ) or do virtual contests on them.

So in conclusion, you should find the topics you are weak at and then improve on them. After this. After this, train you observation finding skills and implementation time. This is the general way I have trained for the last two years and it worked for me. I hope some of you will find this useful.



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3