I feeled my rating and skill is stuck.
When I looked at my rating graph, I found it was just haning around about 2050 to 2150 average.
Every one says to be good, solve more problems, but I have solved almost every 2100~2400 (often 2500 and 2600) in div1,2 contests for last 1 year.
I think I am in some trouble. What can I do?
Take my opinion with a grain of salt because I'm not even close to your rating, but don't you think you didn't become red because you weren't fast enough? Like I'm not even able to reach pupil because I'm not fast enough.
Edit — Ah shit here we go again, got downvoted without anyone caring to explain what did I say wrong?Lemme guess, is it because what I said doesn't really help him because its just another way of saying solve more problems -_-
Speed matters much less when you get to higher ranks, and it's more can you solve problem (I am not purple-orange because I can't solve fast enough, I haven't solved C on div1).
I see, thank you for clearing my misunderstanding!
Personally, I very rarely use codeforces for practice, and instead almost only practice oi. I know I'm just under your rating, but I think this is true of many people higher than me that I feel cf is great for practice contests but practicing oi exposes you to many more techniques and forces you to think longer, while cf is often a single short trick for each problem until you get to very high level, so I think you should try some different sources and read editorials of harder problems more to see new techniques and implement those too.
I'm also a believer in the Chinese way of learning and practicing many data structures, and even if cf doesn't use many, I think it helps your thinking ability and is worth learning and practicing harder problems with them.
What is the chinese way/belief of learning and practicing DS?
SuperJ6 doesn't seem to have read my question yet so can someone (hopefully chinese) answer my question please? I'm curious to know and I've waited 3+ days hoping for a reply...
Tbh I don't know what you mean. It's exactly what I said, many Chinese people practice many data structure problems, nothing more than that. I remember hearing some saying along the lines of ' data structures make up for lack of thinking skill' by someone emphasizing this, which I think is funny saying but also true at times, and I think practicing data structures is interesting and helps you see interesting thought processes when learning how they work that can be applied on other problems. If you want some resources, here's a copy paste of one dm where I listed some:
Some Chinese OJs that are popular are luogo.com.cn (bjoi?), lydsy.com (bzoj), and loj.ac (loj). You can search for data structure problems on those, or some have filters, but what I think the best thing to do is go on csdn.net, a popular Chinese blog site, and search for advanced data structure problems from one of those ojs using the name in parentheses, because then you get to see what other people think are the most useful problems, along with get editorials. Probably it isn't necessary as you can get fine English sources for most things, but Chinese websites do offer some problems with more advanced data structures than I can find in English, so it's at least something to check out.
Note: I am not Chinese, so if there is some Chinese secret, let me know ;)
What is oi?
OI referers to Informatics Olympiads in general
Where can I practice ioi problems ?
https://contest.yandex.com/ioi/contests/
I think oj.uz is a tad better than yandex. Just opinion though, and there are a couple of output onlys that only yandex has iirc
Completely disagree with your first point. There are quality OI problems indeed, but there are many more braindead ones, same as in any general type of competition like that. Practicing for OI only will also limit what you'll learn, looking at OI bois that shiver just by seeing a problem has strings as input/has a title that sounds like flow even though if you took your time to read the problem unbiased it's probably not even that topic (sounds familiar? hi people that say mathforces for any contest that has at least 1 problem with mod 1e9 + 7 even though the problem probably isn't math)
To get "exposed to many more techniques" you should try ICPC, OI and short contests because that way you practice at every kind of problem :D I also feel like your second point should be data structures AND algorithms, gotta be ready for whatever shit the contest brings to you.
I think by OI problems he meant problems with subtasks (that have points). It's easier to solve a hard OI problem, because you can try to solve it part by part. It's also giving you a stress solution most of the time. In an ICPC style task you are aiming for the full solution from the very start, which is obviously harder.
Contests with problems where subtasks are interesting and the full task is significantly different, not just by "use LCA + virtual tree or some known algorithm that you might know or not to solve this faster" kind of things are somewhat rare. Don't put IOI quality problems together with normal OI stuff.
Well, I can't tell for every OI in the world, so I am judging by Russian OI. There are actually a lot of good problems in ROI and other Olympiads in Russia, I have acquired a lot of skills (writing stupid brute-force solutions, thinking about a problem step by step). And also stupid problems like "solve it faster" are a good practice for everyone.
Where do you find ROI? I looked and could only find 2018 in cf gym, and would love to know an oj to try them.
I am afraid not. There is an all Russian judge where you can practice, but the statement is only available in Russian language. And Google translating does not worth your time.
There are too many ICPC-style competition and each of them has too many problems. I feel it’s hard to filter what is good or not. And they are less consistent (ex: CERC 2017 and 2018 have radically different quality)
Also something really good about OI is that they generally foster long-term thinking, so if you have ICPC problem and OI problems of same quality, it’s better to encourage them doing the latter because they help them to solve harder things in their life. ICPC problems are generally not posed for this purpose (although Snark’s New Year Contest changed the culture a bit)
For techniques, I think “exposed to techniques” are good and we should learn more about other’s approaches. But for OI they are not expected to “use” the technique but “invent” such kind of them. Anyway, yes, to be exposed at various stuff, solve from various sources.
Don't get me wrong I think you should do all types of contest as that exposes you to the most things, but I agree with ko_osaga that I find it much harder to filter out good problems from bad in ICPC, because they have to produce more problems and more end up not great quality (of course doing the more prestigious regions and wf kind of fixes that), but mainly it seemed like the op had only been doing codeforces and oi is a much more drastic change from what he'd been doing, so I think he should try more of those.
Also I very much disagree oi will limit what you learn. The only big thing oi doesn't really have that others do is flow. I wish they had more (any?) flow, but for example I've seen more hard string problems, not just constructive stuff using strings, in oi than cf.
Look how more successful people are coding and adapt something from their styles. Your coding style is really bad even for a competitive programmer.
What were the key points which led you to claim/believe his/her coding style to be bad?
Code
Sure, why not, let's start our code with declaring 10 one-letter global variables.
And use them later in a way that doesn't reflect any names from the statement.
I'd like to add something as someone that usually helps people debug something if they ask along with their train of thought behind the solution: I'd open his code and close immediately or just browse through the main bug-prone things to make a vague comment like "have you checked your seg tree?" because it has no spaces, that + these variables makes that wall of code almost unreadable and ugly to debug (for me, maybe you could call it personal preference).
It's not that bad, I hardly think it would make a difference.
It is that bad and I really think it will make a difference
Sad story bro.
I kinda feel the same, but I'm hopeful. I find it helpful to solve problems I am not comfortable with, as it broadens my coding and solving skills. Maybe you should do the same. And also you should try to examine how to show the best performance (I'm talking about your best performances on the previous contests).
If you can solve problems you couldn't solve a year ago, you're doing fine. Otherwise, change something about your practice.
:(
How many of them were without looking at the editorial or taking any hint?
-
I may be offtoping a bit, but wanna say you are absolutely right. I felt like I stuck too and couldn't even get to the finals this year (lol), even though I've been practicing a lot.
But recently I opened a task list from Um_nik with problems from timus and realized that I became able to solve problems that were absolutely unsolveable two years ago.
Now I think that even if my rating isn't growing that fast, I can at least enjoy solving those problems and learn new concepts.
I feel happy with that :)
What task list are you talking about though?
I don't have a list without my notes, but this is my copy of it: link.
Not sure if this list is public, so if Alex wants me to remove a link, I'll close a public access.
Nah, it's fine.
A bit of background: I was trying to help my then teammate Kronecker to grasp necessary concepts usual for CP. He had a very strong math background and was progressing very fast. It's nothing fancy, just some problems from Timus chosen by some weird criteria like "I think it is useful to solve this problem".
I always wondered if high level competitors had some kind of list of good problems, that they enjoyed and they consider a good source for growth in cp. It would be nice if other's had this kind of lists. Thanks for making it. Are the problems there sorted by difficulty? Are this mainly not that hard problems that use some kind of trick or algo ?
I think they should be sorted by Timus "difficulty" which may not coincide with my views on the subject but should be fine as a guideline.
I wouldn't say that these are not hard. I think that in the end problems wouldn't be easy even for high red.
Please don't ask to asses the difficulty "in terms of CF" or otherwise, I don't want to.
About the first part: I actually tried to make a list of problems I liked very much. But it is not the same as "good source for growth in cp". Growth comes from learning technics which may be better done on more standard problems.
Yeah but there are lot's of problems that don't require any algo or DS and it's solution is made from observations and math may be (but not the math math xdd), and to be able to solve these kind of problems you need to solve some good problems that don't really require techniques. Also (just giving an example) you can get very high rating in codeforces by solving only these kind of problems during contests and of course some based on known algo's and DS'es. OI problems also don't really need advanced techniques or math.
You're just trying to come up with excuses for yourself instead of admitting you suck
Wow, even mentioning my name leads to downvoting.
This blog remembered me that I am stuck for 5 years...
I am sorry to hear that...
At least your not stuck for 6 years like me, and you're a master, and your profile pic is nice.
You can change one of those right now though
Sure you're talking about my rating.
its nice but it stuck even more than 6 years :(
I'm heading towards that "get stuck on orange for a year" as well TT
I don't have that trouble of being stuck. Wish you will escape from being stuck too!
You should believe in yourself. Don't loose hope. You will definitely improve.
Also just take some inspirations from KrK. You can check out his profile on various platforms. He is my motivation.
Wow, I am glad to hear this!
Wow, you was stuck long... How did you escape?
Being stuck in the same rank or rating range doesn't necessarily mean not improving. Rating is a measure of relative skill, not absolute. Staying in the same rating could just mean improving at the same rate everyone else is improving. At the higher ranks, everyone is much more serious practicing, and thus, the higher you get, the harder it is to rank even higher.
I think you should practise div 1 problems exclusively, since div.2 problems' difficulties are not that accurate after 2100.
It may sound harsh, but if you use only CF for practice, I don't think you have solved enough problems to be stable 2200+. Number of problems required to reach a specific rating varies between people. I know users who have solved more problems in 2100-2700 than you, but have less max rating than you (e.g. link).
May be I'm just not yet :) Do you know who whet solved very many before he/she became red?
If CF is your main source of practice, I think you need to solve this many problems to become stable red. But this number varies from person to person.
So, can you please share some platforms for practicing, and your approach of practicing ? I feel like there are way too many places to practice, but I do not know what works best. Have a nice day, bro.
If I know it, I will never write such like this post. I think a good platform, it can give you the difficulty of problems, filter which problem is good, see the solutions. That's why I usually use codeforces.
My approach is just participating every div2,div1 contest and solve till difficulty 2400~2600
'What works best' differs from person to person. Use at least atcoder besides codeforces. I think I am good in typical / standard problems, but not so good in observation based adhoc problems, hence I am trying atcoder now. Atcoder problems' difficulty can be found here.
General strategy for everyone is solving problem in difficulty in which you are not fully comfortable, but which is not so hard for you. If you can solve 7/10 random problems of a certain difficulty within reasonable time, you should move to higher difficulty.
I am stuck for 1 year too.What can I do?
I think you can take top10 and go to IGM in next contest.
I dont think you are stuck. You are red and i mean being stuck at read is not really a thing, because you are already very high. Just do what you have been doing and you will improve constantly.
I've woundered what is a difficult problem and how can I improve myself to solve it
For my experience, almost very hard problems satisfies one of at least one of these. 1. It makes hard to figure out which algorithm I have to use. 2. It is hard to use even I know what to use(ex, what should I put at parameters at dp?) 3. a little changed from formal (ex, easy at tree->dag,tree+1 edge graph )
And to slove those, as everyone says, I need to solve moremoremoremore. You are right guys ;)
Can you elaborate your daily problem solving routine?
I used to solve 1 set of atcoder ARC with difficulty yellow~red in one day. Someone said ARC 58~90 is good but I cannot do more because I have done all. I'm planning codeforces contest+upsolving+oi but I'm not sure how much can I do on oi problems. I havn't solved much
Well my question isn't really about which problems you solve, but how do you spend time on each problem, like
(I'm sorry, these are very hard questions to answer)
stuck:I think 60~70% when I solve div1 c
with out editorial: about a hour
time: div1 b:25min~50min?, div1 c(+editorial):50~120min?
It was not that hard to answer because I'm stuck in this position for a year TT
Maybe I'm currently lower than your level but this might help. I believe that solving a problem isn't really about how you AC it but it is about how you come to that solution. I try to adjust my mindset each time I solve a problem so that even if I'm not on the right track I still need to put myself into the right direction. And by practicing more (may be closer to my inspiration), you might become red one day so best of luck.
You probably get into it(rating) too much.