Hi everyone :)
If you have proper and prior experience, could you give some advices in preparation for the IOI? On what should my concentration be to do well?
If probably you can't give any advice because these questions are too general I put some questions below.
- How many hours did you prepare everyday to show your best on the IOI?
- What type of problems did you solve?
- What resources did you use?
- Should I do some math stuff?
- How to learn to solve problems which need a lot of observations, concepts?
Thank you so much!
Auto comment: topic has been translated by RockyB (original revision, translated revision, compare)
USACO USACO USACO! I believe someone will come and say "you should solve all USACO's". Probably it will be ko_osaga
I endorse this
But what can you say about plan/schedule?
Could you please, share your which you used for IOI preparation?
I can’t say about plan/schedule cause I never had one. I never enforced such for others too. Maybe it’s good, maybe not, I don’t care.
You are right that I don’t trained with USACO only. I usually endorse USACO for beginners in competitive training to teach what “typical algos” are. What I actually used can be seen here.
Looking at previous blogs, the best tip apparently is just to do the previous IOI tasks, there's an archive somewhere with all/most of the IOI tasks.
Yeah, it's the nice one :)
However, it's very weird that some countries get gold medals almost every year while others not. Access to these problems have, I guess, everyone and I still curious why this phenomena happens.
Does anybody have ideas about this?
Two things contribute to a country winning the gold medal.
Population size
Level of support that programmers get
For example, you can't expect Vatican to send 4 reds into IOI, but you can certainly expect a lot of high quality programmers from high population countries like China, India, US, Russia etc.
Basically, the more people there are, the more likely there is to be good programmers.
The second one is equally as important. The reason why Russia, China and the US win all those medals is because they have really strong support for their programmers, they have camps, competitions, high quality teachers, encouragement etc.
tourist, Petr and many others wouldn't be as successful as they are now if they had no support early on in their lives.
The reason my country (Bosnia) doesn't take gold medals (at all) is because my country is bad at both of the things I've mentioned. New York has a bigger population than my country and our systems in place to support these competitions is crap.
Only pupils in our capital and some other smaller areas are (sort of) taught CP (competitive programming) from early age, and that's only 10% of the already small population of my country. So by the time most of my fellow countrymen get good at programming and CP, they have probably already finished high school.
You, my friend, have higher rating than anybody in my country.
So.. yeah, our nationals will be soon, if I get into top4, its going to be a huge achievement for me, and a huge disappointment for my country.
Also to add: IOI is its own competition, with its own rules and problems.
The best way to tackle these problems and understand these rules is if you solve previous IOI tasks. Do a 5 hour(or whatever length IOI is) simulation at home and try and do IOI 2018 tasks for example, then do analysis and try to see what you can improve on.
Compared to some other countries, which let students do competitive programming 100% of the time in school, without other classes (!!!!!) and give them special coaches while IN SCHOOL (!!!!!!!!!!!) the United States is very, very unsupportive of its national olympiads. The U.S. doesn't even fund the MAA, let alone USACO. They have to get outside sponsors to even function.
Population is probably the reason that explains U.S. success the best.
US is weird but it has USACO. Also it can be clearly seen that most Americans on the American team are recent-generation immigrants. Also IMO is closely related to IOI, which means that someone who is good at IMO, can very easily train to be good at IOI.
Its actually quite hard to be a good CP if you don't have a strong math background, which I don't. The èxample can be found in the #567 Div2 A task where an IMO guy would instantly have known the solution while I literally struggled to get the optimal solution.
You don't need to have IMO level to find instantly the solution for a div2A :)
Advanced math skills only matter in tasks like div1C+ or the harder atcoder ones
I never said its needed to know A, I can solve every Div2 A on this site and I suck at maths, I'm just saying that having a good math background is very good in CP because most tasks are inevitably math tasks that just need to be translated into computer language.
Actually, most math tasks are inevitably computer science tasks that just need to be translated to latex.
Yes, and there's nothing wrong with that, and the biggest part about IMO translating into IOI is that in IMO you're taught problem solving, which is what CP exactly is. CP in itself is not the whole programming, in fact in some ways, it is a primitive form of programming, where the end all is be all, and how the code looks or how the code operates does not matter as long as it does the thing, while in "real" programming, that's not the case. So CP is problem solving in computer language. And I like this way of maths, I really do, but I just didn't have the support (I just didn't know such things as IMO existed really) in my young age to establish a good math background although to say that I'm bad at maths is stupid, its just that I'm bad compared to the IMO people.
All I know about maths is what school taught me, and I only learned how to interpret the summation symbol (the ones that gets used a lot in CF) last year, and some "basic" stuff like Euclid's algorithm were completely unknown to me until recently.
So I don't mind math tasks in CP as long as I don't have to know advanced math to figure it out, like I see sometimes in E and F tasks.
I am not very good at math, but I wouldn’t say it’s affecting my competition abilities.
I have been trying to solve problems from oj.uz, there you can find a lot of problems from previous competitions, like IOI, BOI, JOI, and the website design is pretty beautiful ^^